| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 | 
							- /**
 
-  * Created by Zhangyx on 2015/10/15.
 
-  */
 
- ;(function($){
 
-     var Caroursel = function (caroursel){
 
-         var self = this;
 
-         this.caroursel = caroursel;
 
-         this.posterList = caroursel.find(".poster-list");
 
-         this.posterItems = caroursel.find(".poster-item");
 
-         this.firstPosterItem = this.posterItems.first();
 
-         this.lastPosterItem = this.posterItems.last();
 
-         this.prevBtn = this.caroursel.find(".poster-prev-btn");
 
-         this.nextBtn = this.caroursel.find(".poster-next-btn");
 
-         //默认参数
 
-         this.setting = {
 
-             "width":"1000",
 
-             "height":"270",
 
-             "posterWidth":"640",
 
-             "posterHeight":"270",
 
-             "scale":"0.8",
 
-             "speed":"1000",
 
-             "isAutoplay":"true",
 
-             "dealy":"1000"
 
-         }
 
-         //自定义参数与默认参数合并
 
-         $.extend(this.setting,this.getSetting())
 
-         //设置第一帧位置
 
-         this.setFirstPosition();
 
-         //设置剩余帧的位置
 
-         this.setSlicePosition();
 
-         //旋转
 
-         this.rotateFlag = true;
 
-         this.prevBtn.bind("click",function(){
 
-             if(self.rotateFlag){
 
-                 self.rotateFlag = false;
 
-                 self.rotateAnimate("left")
 
-             }
 
-         });
 
-         this.nextBtn.bind("click",function(){
 
-             if(self.rotateFlag){
 
-                 self.rotateFlag = false;
 
-                 self.rotateAnimate("right")
 
-             }
 
-         });
 
-         if(this.setting.isAutoplay){
 
-             this.autoPlay();
 
-             this.caroursel.hover(function(){clearInterval(self.timer)},function(){self.autoPlay()})
 
-         }
 
-     };
 
-     Caroursel.prototype = {
 
-         autoPlay:function(){
 
-           var that = this;
 
-           this.timer =  window.setInterval(function(){
 
-               that.prevBtn.click();
 
-           },that.setting.dealy)
 
-         },
 
-         rotateAnimate:function(type){
 
-             var that = this;
 
-             var zIndexArr = [];
 
-             if(type == "left"){//向左移动
 
-                 this.posterItems.each(function(){
 
-                    var self = $(this),
 
-                     prev = $(this).next().get(0)?$(this).next():that.firstPosterItem,
 
-                     width = prev.css("width"),
 
-                     height = prev.css("height"),
 
-                     zIndex = prev.css("zIndex"),
 
-                     opacity = prev.css("opacity"),
 
-                     left = prev.css("left"),
 
-                     top = prev.css("top");
 
-                     zIndexArr.push(zIndex);
 
-                     self.animate({
 
-                         "width":width,
 
-                         "height":height,
 
-                         "left":left,
 
-                         "opacity":opacity,
 
-                         "top":top,
 
-                     },that.setting.speed,function(){
 
-                         that.rotateFlag = true;
 
-                     });
 
-                 });
 
-                 this.posterItems.each(function(i){
 
-                     $(this).css("zIndex",zIndexArr[i]);
 
-                 });
 
-             }
 
-             if(type == "right"){//向右移动
 
-                 this.posterItems.each(function(){
 
-                     var self = $(this),
 
-                     next = $(this).prev().get(0)?$(this).prev():that.lastPosterItem,
 
-                         width = next.css("width"),
 
-                         height = next.css("height"),
 
-                         zIndex = next.css("zIndex"),
 
-                         opacity = next.css("opacity"),
 
-                         left = next.css("left"),
 
-                         top = next.css("top");
 
-                         zIndexArr.push(zIndex);
 
-                     self.animate({
 
-                         "width":width,
 
-                         "height":height,
 
-                         "left":left,
 
-                         "opacity":opacity,
 
-                         "top":top,
 
-                     },that.setting.speed,function(){
 
-                         that.rotateFlag = true;
 
-                     });
 
-                 });
 
-                 this.posterItems.each(function(i){
 
-                     $(this).css("zIndex",zIndexArr[i]);
 
-                 });
 
-             }
 
-         },
 
-         setFirstPosition:function(){
 
-             this.caroursel.css({"width":this.setting.width,"height":this.setting.height});
 
-             this.posterList.css({"width":this.setting.width,"height":this.setting.height});
 
-             var width = (this.setting.width - this.setting.posterWidth) / 2;
 
-             //设置两个按钮的样式
 
-             this.prevBtn.css({"width":width , "height":this.setting.height,"zIndex":Math.ceil(this.posterItems.size()/2)});
 
-             this.nextBtn.css({"width":width , "height":this.setting.height,"zIndex":Math.ceil(this.posterItems.size()/2)});
 
-             this.firstPosterItem.css({
 
-                 "width":this.setting.posterWidth,
 
-                 "height":this.setting.posterHeight,
 
-                 "left":width,
 
-                 "zIndex":Math.ceil(this.posterItems.size()/2),
 
-                 "top":this.setVertialType(this.setting.posterHeight)
 
-             });
 
-         },
 
-         setSlicePosition:function(){
 
-             var _self = this;
 
-             var sliceItems = this.posterItems.slice(1),
 
-                 level = Math.floor(this.posterItems.length/2),
 
-                 leftItems = sliceItems.slice(0,level),
 
-                 rightItems = sliceItems.slice(level),
 
-                 posterWidth = this.setting.posterWidth,
 
-                 posterHeight = this.setting.posterHeight,
 
-                 Btnwidth = (this.setting.width - this.setting.posterWidth) / 2,
 
-                 gap = Btnwidth/level,
 
-                 containerWidth = this.setting.width;
 
-             //设置左边帧的位置
 
-             var i = 1;
 
-             var leftWidth = posterWidth;
 
-             var leftHeight = posterHeight;
 
-             var zLoop1 = level;
 
-             leftItems.each(function(index,item){
 
-                 leftWidth = posterWidth * _self.setting.scale;
 
-                 leftHeight = posterHeight*_self.setting.scale;
 
-                 $(this).css({
 
-                     "width":leftWidth,
 
-                     "height":leftHeight,
 
-                     "left": Btnwidth - i*gap,
 
-                     "zIndex":zLoop1--,
 
-                     "opacity":1/(i+1),
 
-                     "top":_self.setVertialType(leftHeight)
 
-                 });
 
-                 i++;
 
-             });
 
-             //设置右面帧的位置
 
-             var j = level;
 
-             var zLoop2 = 1;
 
-             var rightWidth = posterWidth;
 
-             var rightHeight = posterHeight;
 
-             rightItems.each(function(index,item){
 
-                 var rightWidth = posterWidth * _self.setting.scale;
 
-                 var rightHeight = posterHeight*_self.setting.scale;
 
-                 $(this).css({
 
-                     "width":rightWidth,
 
-                     "height":rightHeight,
 
-                     "left": containerWidth -( Btnwidth - j*gap + rightWidth),
 
-                     "zIndex":zLoop2++,
 
-                     "opacity":1/(j+1),
 
-                     "top":_self.setVertialType(rightHeight)
 
-                 });
 
-                 j--;
 
-             });
 
-         },
 
-         getSetting:function(){
 
-             var settting = this.caroursel.attr("data-setting");
 
-             if(settting.length > 0){
 
-                 return $.parseJSON(settting);
 
-             }else{
 
-                 return {};
 
-             }
 
-         },
 
-         setVertialType:function(height){
 
-             var algin = this.setting.algin;
 
-             if(algin == "top") {
 
-                 return 0
 
-             }else if(algin == "middle"){
 
-                 return (this.setting.posterHeight - height) / 2
 
-             }else if(algin == "bottom"){
 
-                 return this.setting.posterHeight - height
 
-             }else {
 
-                 return (this.setting.posterHeight - height) / 2
 
-             }
 
-         }
 
-     }
 
-     Caroursel.init = function (caroursels){
 
-         caroursels.each(function(index,item){
 
-             new Caroursel($(this));
 
-         })  ;
 
-     };
 
-     window["Caroursel"] = Caroursel;
 
- })(jQuery)
 
 
  |