/* jQ向上滚动带上下翻页按钮 */ (function($){ $.fn.extend({ Scroll:function(opt,callback){ //参数初始化 if(!opt) var opt={}; var _wrap = $("#" + opt.wrap); var _btnUp = $("#"+ opt.up);//Shawphy:向上按钮 var _btnDown = $("#"+ opt.down);//Shawphy:向下按钮 var timerID; var _this=this.eq(0).find("ul:first"); var lineH=_wrap.find('ul').height() / _wrap.find('li').length, //获取行高 line=opt.line?parseInt(opt.line,10):parseInt(this.height()/lineH,10), //每次滚动的行数,默认为一屏,即父容器高度 speed=opt.speed?parseInt(opt.speed,10):500; //卷动速度,数值越大,速度越慢(毫秒) timer=opt.timer //?parseInt(opt.timer,10):3000; //滚动的时间间隔(毫秒) if(line==0) line=1; var upHeight=0-line*lineH; var counter = 0; var itemLength = _wrap.find('li').length; var defaultLength = (_wrap.height() / lineH).toFixed(0); console.log(_wrap); console.log(defaultLength, 333); console.log(itemLength,333); var lens = itemLength - defaultLength; //滚动函数 var scrollUp = function () { if (itemLength <= defaultLength) return; counter++; if (counter > lens) counter = lens; _btnUp.unbind("click",scrollUp); //Shawphy:取消向上按钮的函数绑定 _this.animate({ marginTop:upHeight * counter },speed,function(){ // for(i=1;i<=line;i++){ // _this.find("li:first").appendTo(_this); // } // _this.css({marginTop:0}); _btnUp.bind("click",scrollUp); //Shawphy:绑定向上按钮的点击事件 }); } //Shawphy:向下翻页函数 var scrollDown = function () { if (itemLength <= defaultLength) return; counter--; if (counter < 0) counter = 0; _btnDown.unbind("click",scrollDown); // for(i=1;i<=line;i++){ // _this.find("li:last").show().prependTo(_this); // } // _this.css({marginTop:upHeight}); _this.animate({ marginTop: upHeight * counter },speed,function(){ _btnDown.bind("click",scrollDown); }); } //Shawphy:自动播放 var autoPlay = function(){ if(timer)timerID = window.setInterval(scrollUp,timer); }; var autoStop = function(){ if(timer)window.clearInterval(timerID); }; //鼠标事件绑定 _this.hover(autoStop,autoPlay).mouseout(); _btnUp.css("cursor","pointer").click( scrollUp ).hover(autoStop,autoPlay);//Shawphy:向上向下鼠标事件绑定 _btnDown.css("cursor","pointer").click( scrollDown ).hover(autoStop,autoPlay); } }) })(jQuery);