文字垂直迴圈滾動效果

antzone發表於2017-04-19

分享一段程式碼例項,它利用jQuery實現了文字垂直迴圈滾動的效果。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
#container{
  width:500px;
  height:300px;
  margin:200px  auto;
  border:1px solid #ddd;
  text-align: center;
  background-color:#eee;
}
.text{
  width:200px;
  height:60px;
  overflow:hidden;
  cursor:pointer;
  margin:0 auto;
}
.text ul{
  margin:0px;
  padding:0px;
  list-style:none;
}
.text ul li{
  width:200px;
  height:30px;
  background:#ccc;
  line-height:30px;
  font-size:12px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script >
$(function() {
  function textslide() {
    var height = ($('.text ul li').height());
    $('.text ul li').eq(0).animate({
      marginTop: -height
    }, function() {
      $(this).remove().appendTo('.text ul').css({
        marginTop: 0
      })
    });
  }
  var t = setInterval(textslide, 1000);
  $('.text').hover(function() {
    clearInterval(t);
  }, function() {
    t = setInterval(textslide, 1000);
  })
})
</script>
</head>
<body>
<div id="container">
  <div class="text">
    <ul>
      <li>本站的url地址是www.softwhy.com</li>
      <li >只有努力奮鬥才會有美好的未來</li>
      <li>前端學習和後端一樣都需要花大力氣</li>
    </ul>
  </div>
</div>
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的詳細實現過程。

相關閱讀:

(1).$(function() {}),文件結構完全載入完畢再去執行函式中的程式碼。

(2).function textslide() {},此方法可以實現向上滾動效果。

(3).var height = ($('.text ul li').height()),獲取li元素的高度。

(4).$('.text ul li').eq(0).animate({

  marginTop: -height

},獲取第一個li元素,然後以動畫方式設定它的margin-top值,值是負數,大小恰好是li元素的高度,這樣也就是向上滾動了一條。

(5).function() {

  $(this).appendTo('.text ul').css({

    marginTop: 0

  })

},當上移一條完成之後,將此條追加到列表的最後。

然後再將這個li元素的margin-top重置為0。

(6).var t = setInterval(textslide, 1000),每隔一秒執行一次textslide函式,於是實現了垂直滾動效果。

(7).$('.text').hover(function() {

  clearInterval(t);

}, function() {

  t = setInterval(textslide, 1000);

}),滑鼠懸浮停止滾動,離開再繼續滾動。

相關文章