/* * jScroll 1.0 * Copyright (C) 2009 wo_is神仙 All Rights Reserved. * Licensed: http://www.gnu.org/licenses/gpl.html */ ;(function($){ $.fn.extend({ "jScroll":function(o){ o = $.extend({ auto: 3000, //延迟时间(毫秒) speed: 800, //单次滚动时长(毫秒) vertical: false, //是否向上滚动(默认向左) scroll: 1 //每次滚动的元素数量 },o); var running = false, sizeCss = o.vertical ? "height" : "width", ulSize = 0; var scrollTimer, scrollLen, itemSize, animCss, i; var div = $(this), ul = div.find("ul"), li = ul.children("li"); div.css({overflow: "hidden"}); ul.css({margin: "0", padding: "0", display: "inline-block"}); li.css({"list-style-type": "none", float: o.vertical ? "none" : "left"}); //获取LI元素总宽(高) for(i=0; i<=li.size()-1; i++){ itemSize = o.vertical ? li.eq(i).outerHeight() : li.eq(i).outerWidth(); ulSize+=itemSize; } var divSize = o.vertical ? div.height() : div.width(); //容器宽(高) ul.css(sizeCss, (ulSize*2)+"px"); if(ulSize > divSize) running = true; //UL的宽(高)大于容的器宽(高)时才滚动 div.hover(function(){ clearInterval(scrollTimer); },function(){ if(running){ scrollTimer = setInterval(function(){ scrollLen = 0; itemSize = 0; li = ul.children("li"); for(i=0; i<=o.scroll-1; i++){ itemSize = o.vertical ? li.eq(i).outerHeight() : li.eq(i).outerWidth(); scrollLen+=itemSize; } animCss = o.vertical ? {marginTop:-scrollLen +"px"} : {marginLeft:-scrollLen +"px"}; ul.animate(animCss, o.speed, function(){ ul.css(o.vertical ? "margin-top" : "margin-left", "0"); li.slice(0,o.scroll).appendTo(ul); //将前面的元素移至末尾 }) }, parseInt(o.auto+o.speed)); } }).trigger("mouseleave"); //DOM加载完毕后自动执行hover(fn1, fn2)的fn2 } }); })(jQuery);