这篇文章主要为大家详细介绍了JavaScript实现公告栏上下滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>公告栏上下滚动</title>
</head>
<style type="text/css">
body {
background: grey;
}
ul,li{list-style: none;padding: 0;margin: 0;}
.Roll {
padding: 0;
text-align: left;
text-indent: 10px;
cursor: pointer;
opacity: 1;
height: 6rem;
line-height: 3rem;
font-size: 17px;
background-color: #fff;
color: #fe172d;
}
.ul li {
background-color: #A6E1EC;
border-radius: 20px;
height: 2rem;
margin: 50px auto;
opacity: 0;
line-height: 2rem;
}
</style>
<body>
<div class="Roll" style="overflow: hidden">
<ul class="ul">
<li>111111111111刚刚购买了一单</li>
<li>222222222222刚刚购买了一单</li>
<li>333333333333刚刚购买了一单</li>
<li>444444444444刚刚购买了一单</li>
<li>555555555555刚刚购买了一单</li>
<li>QQ3131282664刚刚购买了一单</li>
</ul>
</div>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
statr = () => { //创造一个循环方法函数
let first = $('.ul li:first'), //获取列表第一个li
firstLi = first.clone(); //复制第一个li
$('.ul li').eq(0).animate({ //列表第一个添加动画,
marginTop: '-=15px',
opacity: '1'
}, 2000)
setTimeout(function() {
$('.ul li').eq(0).animate({//列表第二个添加动画,
marginTop: '-=15px',
opacity: '0'
}, 2000);
setTimeout(function() {//动画结束后删除第一个li
first.remove();
}, 2000)
$('.ul').append(firstLi)//li复制到最后面开始新的一轮循环
},4000)
}
setInterval('statr()', 7000) //7秒循环一次
</script>
</html>