jQuery实现上下无缝滚动代码实例
$(function(){
var _wrap=$('ul.line');//定义滚动区域
var _interval=2000;//定义滚动间隙时间
var _moving;//需要清除的动画
_wrap.hover(function(){
clearinterval(_moving);//当鼠标在滚动区域中时,停止滚动
},function(){
_moving=setinterval(function(){
var _field=_wrap.find('li:first');//此变量不可放置于函数起始处,li:first取值是变化的
var _h=_field.height();//取得每次滚动高度(多行滚动情况下,此变量不可置于开始处,否则会有间隔时长延时)
_field.animate({margintop:-_h+'px'},600,function(){//通过取负margin值,隐藏第一行
_field.css教程('margintop',0).appendto(_wrap);//隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动
})
},_interval)//滚动间隔时间取决于_interval
}).trigger('mouseleave');//函数载入时,模拟执行mouseleave,即自动滚动
});
完整实例代码
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<style>
/*demo css*/
#demo h2{background:#a40000; font-size:12px; color:#fff; font-weight:normal; text-align:center; width:100px; height:25px;line-height:25px; margin:30px 0 0 20px}
#demo ul.line,#demo ul.mulitline{width:500px; height:30px; background:#eee; overflow:hidden;margin-bottom:20px;border:2px solid #a40000}
#demo ul.mulitline{height:90px}
#demo li{height:30px;text-indent:15px; font-size:12px; line-height:30px;list-style:none}
</style>
<script>
/*******************************
* @www.3ppt.com可自由转载及使用,但请注明版权归属
*******************************/
$(function(){
//单行应用@mr.think
var _wrap=$('ul.line');//定义滚动区域
var _interval=2000;//定义滚动间隙时间
var _moving;//需要清除的动画
_wrap.hover(function(){
clearinterval(_moving);//当鼠标在滚动区域中时,停止滚动
},function(){
_moving=setinterval(function(){
var _field=_wrap.find('li:first');//此变量不可放置于函数起始处,li:first取值是变化的
var _h=_field.height();//取得每次滚动高度
_field.animate({margintop:-_h+'px'},600,function(){//通过取负margin值,隐藏第一行
_field.css('margintop',0).appendto(_wrap);//隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动
})
},_interval)//滚动间隔时间取决于_interval
}).trigger('mouseleave');//函数载入时,模拟执行mouseleave,即自动滚动
});
$(function(){
//多行应用@mr.think
var _wrap=$('ul.mulitline');//定义滚动区域
var _interval=3000;//定义滚动间隙时间
var _moving;//需要清除的动画
_wrap.hover(function(){
clearinterval(_moving);//当鼠标在滚动区域中时,停止滚动
},function(){
_moving=setinterval(function(){
var _field=_wrap.find('li:first');//此变量不可放置于函数起始处,li:first取值是变化的
var _h=_field.height();//取得每次滚动高度
_field.animate({margintop:-_h+'px'},600,function(){//通过取负margin值,隐藏第一行
_field.css('margintop',0).appendto(_wrap);//隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动
})
},_interval)//滚动间隔时间取决于_interval
}).trigger('mouseleave');//函数载入时,模拟执行mouseleave,即自动滚动
});
</script><div id="demo">
<h2>单行应用</h2>
<ul class="line">
<li><a title="简易的点击展开/关闭效果(原生js版和jq版)" href="/js-jq-click-openclose/">简易的点击展开/关闭效果(原生js版和jq版)</a> 2010年08月02日 (6)</li>
<li><a title="getelementsbytagname的简写方式" href="/javascrip-simple-getelementsbytagname/">getelementsbytagname的简 写方式</a> 2010年06月24日 (4)</li>
<li><a title="一个简单的鼠标划过切换效果" href="/script-mousechange-simple/">一个简单的鼠标划过切换效果</a> 2010年05月23日 (4)</li><li><a title="奇或偶数行高亮显示及鼠标划过高亮显示类" href="/网页特效-tagnames-highlight/">奇或偶数行高亮显示及鼠标划过高亮显示类</a> 2010年05月05日 (5)</li>
<li><a title="一个简单的纵横向动画效果类" href="/javascrip-dom-slide-simple/">一个简单的纵横向动画效果类</a> 2010年05月02日 (4)</li><li><a title="document.getelementbyid的简写方式" href="/javascript-getbyid-simplewrite/">document.getelementbyid的简写方式& amp; lt;/a> 2010年04月18日 (1)</li>
<li><a title="两种简单实现菜单高亮显示的js类" href="/javascript-highlight-menu-twoway/">两种简单实现菜单高亮显示的js类</a> 2010年04月17日 (10)</li>
</ul>
<!--//jq版本//-->
<h2>多行应用</h2>
<ul class="mulitline">
<li><a title="一个简单的鼠标划过切换效果" href="/script-mousechange-simple/">一个简单的鼠标划过切换效果</a> 2010年05月23日 (4)</li><li><a title="奇或偶数行高亮显示及鼠标划过高亮显示类" href="/javascript-tagnames-highlight/">奇或偶数行高亮显示及鼠标划过高亮显示类</a> 2010年05月05日 (5)</li>
<li><a title="getelementsbytagname的简写方式" href="/javascrip-simple-getelementsbytagname/">getelementsbytagname的简 写方式</a> 2010年06月24日 (4)</li>
<li><a title="两种简单实现菜单高亮显示的js类" href="/javascript-highlight-menu-twoway/">两种简单实现菜单高亮显示的js类</a> 2010年04月17日 (10)</li>
<li><a title="简易的点击展开/关闭效果(原生js版和jq版)" href="/js-jq-click-openclose/">简易的点击展开/关闭效果(原生js版和jq版)</a> 2010年08月02日 (6)</li>
<li><a title="一个简单的纵横向动画效果类" href="/javascrip-dom-slide-simple/">一个简单的纵横向动画效果类</a> 2010年05月02日 (4)</li><li><a title="document.getelementbyid的简写方式" href="/javascript-getbyid-simplewrite/">document.getelementbyid的简写方式& amp; lt;/a> 2010年04月18日 (1)</li>
</ul>
<!--//多行应用//-->
</div>