基于jQuery的上下无缝滚动

 1 $(function(){
 2     //单行
 3     var _wrap=$('ul.line');//定义滚动区域
 4     var _interval=2000;//定义滚动间隙时间
 5     var _moving;//需要清除的动画
 6     _wrap.hover(function(){
 7         clearInterval(_moving);//当鼠标在滚动区域中时,停止滚动
 8     },function(){
 9         _moving=setInterval(function(){
10             var _field=_wrap.find('li:first');//此变量不可放置于函数起始处,li:first取值是变化的
11             var _h=_field.height();//取得每次滚动高度
12             _field.animate({marginTop:-_h+'px'},600,function(){//通过取负margin值,隐藏第一行
13                 _field.css('marginTop',0).appendTo(_wrap);//隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动
14             })
15         },_interval)//滚动间隔时间取决于_interval
16     }).trigger('mouseleave');//函数载入时,模拟执行mouseleave,即自动滚动
17 });
18 $(function(){
19     //多行
20     var _wrap=$('ul.mulitline');//定义滚动区域
21     var _interval=3000;//定义滚动间隙时间
22     var _moving;//需要清除的动画
23     _wrap.hover(function(){
24         clearInterval(_moving);//当鼠标在滚动区域中时,停止滚动
25     },function(){
26         _moving=setInterval(function(){
27             var _field=_wrap.find('li:first');//此变量不可放置于函数起始处,li:first取值是变化的
28             var _h=_field.height();//取得每次滚动高度
29             _field.animate({marginTop:-_h+'px'},600,function(){//通过取负margin值,隐藏第一行
30                 _field.css('marginTop',0).appendTo(_wrap);//隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动
31             })
32         },_interval)//滚动间隔时间取决于_interval
33     }).trigger('mouseleave');//函数载入时,模拟执行mouseleave,即自动滚动
34 });

 

Demo地址

 

posted on 2012-12-31 22:51  Cosimo  阅读(223)  评论(0编辑  收藏  举报

导航