JavaScript实现内容自动滚动效果完整示例
作者:小括号时间:2026-10-22 07:37:25浏览:460
本文介绍如何使用JavaScript结合CSS实现列表内容的自动滚动效果。通过设置ul的overflow:hidden隐藏溢出内容,利用setInterval定时触发jQuery动画,交替隐藏当前首项并淡入新内容,每两秒切换一次,支持动态更新列表数据。
JavaScript实现内容自动滚动效果完整示例
首先展示实现后的运行效果截图。

以下是完整的可运行Demo代码。
该效果每两秒随机向上或向下滚动一次。如需替换列表中的新内容,只需调用html()方法更新DOM即可(具体实现见代码注释)。
<!DOCTYPE html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style>
ul,li{
list-style-type:none;
border: solid;
}
ul{
overflow: hidden;/*让li超出ul时隐藏*/
}
body{
margin: 0px;
}
</style>
</head>
<body>
<div>
<ul>
<li>
<img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1503543418892&di=1f606f0990cf6fa893c8330457b5fde2&imgtype=0&src=http%3A%2F%2Fi3.hoopchina.com.cn%2Fblogfile%2F201509%2F16%2FBbsImg144240668814516_480*360.jpg"/>
</li>
<li><img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1503543451619&di=a578daa6b6f794cb233f655cd5ecaf91&imgtype=0&src=http%3A%2F%2Fimg.qqzhi.com%2Fupload%2Fimg_0_3518803618D2241430362_23.jpg"/>
</li>
<li><img src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1503544550636&di=086d271111b428fadf9e23abb7c06b1e&imgtype=0&src=http%3A%2F%2Fuploads.yeyoujia.com%2Fcms%2Fimages%2F2017%2F02%2F10%2F589d8e4598d46285900450.png">
</li>
</ul>
</div>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
function getRandom(min, max){
var r = Math.random() * (max - min);
var re = Math.round(r + min);
re = Math.max(Math.min(re, max), min)
return re;
}
$(function(){
setInterval(function(){
if(getRandom(0,1)==0){
//向上滚动特效
var ul = $("ul");
var $first = ul.find('li:first');
var height = $first.height();
$first.animate({
marginTop: -height + 'px'
}, 500, function() {
// $first.css('marginTop', 0).html(new Date().getMinutes()+":"+new Date().getSeconds()).appendTo(ul);/*不要写成append*/
$first.css('marginTop', 0).appendTo(ul);
});
}else{
//向下滚
var ul = $("ul");
var liHeight = ul.find("li:last").height();//计算最后一个li元素的高度
ul.animate({marginTop : liHeight +"px"},500,function(){
// ul.find("li:last").html(new Date().getMinutes()+":"+new Date().getSeconds()).prependTo(ul);/*不要写成prepend*/
ul.find("li:last").prependTo(ul);/*不要写成prepend*/
ul.find("li:first").hide();
ul.css({marginTop:0});
ul.find("li:first").fadeIn(1000);
});
}
},2000);
});
</script>
</body>
</html>
最终呈现的视觉效果。
作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
