本文介绍如何使用JavaScript结合CSS实现文字列表的无缝向上滚动效果。核心思路是通过复制列表内容至第二个容器,利用定时器控制scrollTop属性实现位移,并在鼠标悬停时暂停滚动,离开后恢复,从而提升用户体验。
无缝滚动效果展示
最终呈现效果如图所示:

HTML结构搭建
HTML结构方面,主要构建一个外层div容器,内部包含两个ul列表元素。
<div style="position: absolute; left: 500px; top: 200px; background-color: white;
height: 140px; width: 400px; border: solid; 1px; overflow: hidden;" id="box">
<ul id="ul1">
<li><a href="#">1.学会html5 绝对的屌丝逆袭(案例)</a><span>2013-09-18</span></li>
<li><a href="#">2.tab页面切换效果(案例)</a><span>2013-10-09</span></li>
<li><a href="#">3.圆角水晶按钮制作(案例)</a><span>2013-10-21</span></li>
<li><a href="#">4.HTML+CSS基础课程(系列)</a><span>2013-11-01</span></li>
<li><a href="#">5.分页页码制作(案例)</a><span>2013-11-06</span></li>
<li><a href="#">6.导航条菜单的制作(案例)</a><span>2013-11-08</span></li>
<li><a href="#">7.信息列表制作(案例)</a><span>2013-11-15</span></li>
<li><a href="#">8.下拉菜单制作(案例)</a><span>2013-11-22</span></li>
<li><a href="#">9.如何实现“新手引导”效果</a><span>2013-12-06</span></li>
</ul>
<ul id="ul2"></ul>
</div>
JavaScript核心代码实现
具体的JavaScript实现逻辑如下:
window.onload=roll;
function roll(){
var ul1=document.getElementById("ul1");
var ul2=document.getElementById("ul2");
var box=document.getElementById("box");
ul2.innerHTML=ul1.innerHTML;
box.scrollTop = 0;
var timer=setInterval(rollStart,50);
box.onmouseover=function(){
clearInterval(timer)
}
box.onmouseout=function(){
timer=setInterval(rollStart,50);
}
}
function rollStart(){
if (box.scrollTop>=ul1.scrollHeight) {//scrollTop属性既是scroll最上端和box的距离
box.scrollTop=0;
}else{
box.scrollTop++;
}
}
以上即为本文分享的全部内容,希望能为读者的学习提供有益参考,同时也感谢大家的支持。