JavaScript实现新闻列表无缝向上滚动效果

作者:闭包旅人

时间:2026-10-29

浏览:568

本文介绍利用JavaScript实现新闻列表无缝向上滚动的具体方法。通过复制内容块实现视觉连续,利用scrollTop属性重置位置,避免滚动断点。适合内容较多且展示空间有限场景,提供完整HTML与JS代码示例及原理分析。

文章目录

JavaScript实现新闻列表无缝向上滚动效果

在新闻内容繁多且展示区域有限的情况下,采用滚动展示是一种高效的解决方案。本节将通过具体的代码示例,详细讲解如何实现这一效果。

具体实现代码如下:


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="https://www.jb51.net/" />
<title>文字列表无缝向上滚动代码</title>
<style type="text/css">
*{
margin:0px;
padding:0px;
border:0px;
}
body{font-size:12px}
#demo{
overflow:hidden;
height:80px;
width:280px;
margin:90px auto;
position:relative;
}
#demo1{
height:auto;
text-align:left;
}
#demo2{
height:auto;
text-align:left;
}
#demo1 li{
list-style-type:none;
height:22px;
text-align:left;
text-indent:15px;
}
#demo2 li{
list-style-type:none;
height:22px;
text-align:left;
text-indent:15px;
}
</style>
<script type="text/javascript"> 
var speed=40 
window.onload=function(){
var demo=document.getElementById("demo"); 
var demo2=document.getElementById("demo2"); 
var demo1=document.getElementById("demo1"); 
demo2.innerHTML=demo1.innerHTML 
function Marquee(){ 
if(demo.scrollTop>=demo1.offsetHeight){
demo.scrollTop=0; 
}
else{ 
demo.scrollTop=demo.scrollTop+1;
} 
} 
var MyMar=setInterval(Marquee,speed) 
demo.onmouseover=function(){clearInterval(MyMar)} 
demo.onmouseout=function(){MyMar=setInterval(Marquee,speed)} 
}
</script>
</head>
<body>
<div id="demo">
<ul id="demo1">
<li><a href="#" target="_blank">本站欢迎您的到来</a></li>
<li><a href="#" target="_blank">只有努力才会有美好的明天</a></li>
<li><a href="#" target="_blank">没有人一开始就是高手,都是从菜鸟开始</a></li>
<li><a href="#" target="_blank">每一天都是新的需要好好珍惜</a></li>
<li><a href="#" target="_blank">怨天尤人是没有任何作用的</a></li>
<li><a href="#" target="_blank">今天你写代码了吗</a></li>
<li><a href="#" target="_blank">分享的胸怀和互助的精神最终成就了你</a></li>
</ul>
<div id="demo2"></div>
</div>
</body>
</html> 

上述代码完成了新闻列表的滚动功能,接下来对实现原理进行解析:

一、实现原理:

基本思路如下:在demo元素内部包含两个子元素demo1和demo2,并将demo1的内容复制到demo2中。这样做的目的是为了确保在向上滚动时,demo2能够无缝衔接在demo1之后,从而避免产生滚动间隙。当demo1的内容完全移出可视区域(即完全滚动上去)时,demo2恰好移动到demo1初始所在的位置。此时,通过重新设置demo容器的scrollTop值,使滚动位置重置,从而循环播放,实现无缝滚动的视觉效果。

关于基于JavaScript实现新闻列表无缝向上滚动的介绍至此结束,建议读者根据实际项目需求灵活应用此段代码。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章