| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- (function($) {
- $.fn.jMarquee = function(o) {
- o = $.extend({
- speed:30,
- step:1,//滚动步长
- direction:"up",//滚动方向
- visible:3//可见元素数量
- }, 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,o.visible).clone()) //复制前o.visible个li,并添加到ul的最后
- li=$("li",ul);
- liSize=li.size();
-
- //给滚动内容添加相关CSS样式
- div.css({"position":"relative",overflow:"hidden"});
- ul.css({"position":"relative",margin:"0",padding:"0","list-style":"none"});
- li.css({margin:"0",padding:"0","position":"relative"});
-
- switch(o.direction){
- case "left":
- div.css("width",(liWidth*o.visible)+"px");
- 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);
|