教程介绍

这篇文章主要为大家详细介绍了JavaScript实现公告栏上下滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

实现方法

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>公告栏上下滚动</title>

 <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>
  </head>
 <body>
 <div class="Roll" style="overflow: hidden">
 <ul class="ul">
 <li>安生子1</li>
 <li>安生子2</li>
 <li>安生子3</li>
 <li>安生子4</li>
 <li>安生子5</li>
 <li>安生子6</li>
 </ul>
 </div>
  <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>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 </body>

</html>