(function($) { $.fn.jmarquee = function(o) { o = $.extend({ speed:30, step:6,//滚动步长 direction:"left",//滚动方向 visible:1//可见元素数量 }, o || {}); //获取滚动内容内各元素相关信息 var i=0; var div=$(this); var ul=$("ul",div); var tli=$("li",ul); var lisize=tli.size(); if(o.direction=="left") tli.css("float","left"); var liwidth=tli.innerwidth(); var liheight=tli.height(); var ulheight=liheight*lisize; var ulwidth=liwidth*lisize; //如果对象元素个数大于指定的显示元素则进行滚动,否则不滚动。 if(lisize>o.visible){ ul.append(tli.slice(0,5).clone()) //复制前o.visible个li,并添加到ul的最后 li=$("li",ul); lisize=li.size(); //给滚动内容添加相关css样式 div.css({"position":"relative",overflow:"hidden"}); ul.css({"position":"relative","list-style":"none"}); li.css({"position":"relative"}); switch(o.direction){ case "left": div.css("width",999); ul.css("width",(liwidth*lisize)+"px"); li.css("float","left"); break; case "up": div.css({"height":(liheight*o.visible)+"px"}); ul.css("height",(liheight*lisize)+"px"); break; } var mymar=setinterval(ylmarquee,o.speed); ul.hover( function(){clearinterval(mymar);}, function(){mymar=setinterval(ylmarquee,o.speed);} ); }; function ylmarquee(){ if(o.direction=="left"){ if(div.scrollleft()>=ulwidth){ div.scrollleft(0); } else { var leftnum=div.scrollleft(); leftnum+=parseint(o.step); div.scrollleft(leftnum) } } if(o.direction=="up"){ if(div.scrolltop()>=ulheight){ div.scrolltop(0); } else{ var topnum=div.scrolltop(); topnum+=parseint(o.step); div.scrolltop(topnum); } } }; }; })(jquery);