JavaScript实现无缝滚动效果的完整代码解析

作者:闭包旅人时间:2026-10-28 19:11:29浏览:638

本文详细解析如何使用JavaScript实现网页内容的无缝滚动效果。通过克隆DOM节点、利用定时器控制scrollTop属性以及处理鼠标悬停事件,实现平滑且无断点的滚动体验。代码包含HTML结构定义与JS逻辑控制,可直接复制运行,适用于垂直或横向滚动场景。

JavaScript无缝滚动实现原理与代码

在开发网页特效时,经常需要实现无缝滚动功能。起初尝试多次未能成功,经过深入研究后发现原理并不复杂。以下是实现该功能的具体代码示例。

具体实现代码如下:

<div id=demo style=overflow:auto;height:180;width:200;background:#009900;color:#006600>
<table align=top>
<tr>
<td id=demo1 valign=top>
<p>aaaaaaaaaaa</p>
<p>aaaaaaaaaaa</p>
<p>aaaaaaaaaaa</p>
<p>aaaaaaaaaaa</p>
<p>aaaaaaaaaaa</p>
<p>aaaaaaaaaaa</p>
</td>
</tr>
<tr>
<td id=demo2 valign=top></td>
</tr>
</table>
</div>
<script>
var speed=15
demo2.innerHTML=demo1.innerHTML//克隆demo1为demo2
function Marquee(){
if(demo2.offsetHeight-demo.scrollTop<=0)//当滚动至demo1与demo2交界时
demo.scrollTop-=demo1.offsetHeight//demo跳到最顶端
else{
demo.scrollTop++ //如果是横向的 将 所有的 height top 改成 width left
}  
}  
var MyMar=setInterval(Marquee,speed)//设置定时器
demo.onmouseover=function() {clearInterval(MyMar)}//鼠标移上时清除定时器达到滚动停止的目的
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}//鼠标移开时重设定时器
</script>




将上述代码完整复制到一个HTML文件中即可直接运行测试。


作者最新文章