jQuery實現的但行文字具有時間間隔向上滾動效果

antzone發表於2017-03-26

在不少的網站中可能有類似的效果,那就是有單行的公告形式的文字能夠迴圈不簡單的滾動,並且在滾動的時候有一定的時間間隔,叫人性化,下面就通過程式碼例項介紹一下如何利用jquery實現此功能。

程式碼如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
.infolist{
  width:400px;
  matgin:0;
}
.infolist ul{
  margin:0;
  padding:0;
}
.infolist ul li{
  list-style:none;
  height:26px;
  line-height:26px;
}
.infocontent{
  width:400px;
  height:26px;
  overflow:hidden;
  border:1px solid #666666;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript"> 
var interval=1000;
var stepsize=26;
var objInterval=null; 
 
$(document).ready( function(){ 
  $("#bottom").html($("#top").html());
  $("#content").bind("mouseover",function(){StopScroll();}); 
  $("#content").bind("mouseout",function(){StartScroll();}); 
 
  StartScroll(); 
}); 
 
function StartScroll(){ 
  objInterval=setInterval("verticalloop()",interval); 
} 
 
function StopScroll(){ 
  window.clearInterval(objInterval); 
} 
 
function verticalloop(){ 
  if($("#content").scrollTop()>=$("#top").outerHeight()){ 
    $("#content").scrollTop($("#content").scrollTop()-$("#top").outerHeight()); 
  } 
  $("#content").animate({
    "scrollTop":$("#content").scrollTop()+stepsize +"px"},600); 
}
</script>
</head>
<body>
<div id="content" class="infocontent">
  <div id="top" class="infolist">
    <ul>
      <li>螞蟻部落歡迎您,只有努力奮鬥才會有美好的明天。</li>
      <li>我們的網址是softwhy.com。</li>
      <li>沒有人一開始就是高手,都是從一點一滴積累的。</li>
      <li>只有當前的時間最珍貴,下一秒都是虛幻的。</li>
    </ul>
  </div>
  <div id="bottom" class="infolist"></div>
</div>
</body>
</html>

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

一.程式碼註釋:

1.var interval=1000,設定定時器函式的間隔。2.var stepsize=26,設定每一次向上滾動的尺寸。

3.var objInterval=null,用來儲存定時器函式的標識,也就是定時器函式的返回值。

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

5.$("#bottom").html($("#top").html()),bottom中的html內容設定為top中的內容。

6.$("#content").bind("mouseover",function(){StopScroll();}),註冊mouseover事件處理函式,當滑鼠懸浮在元素上面的時候,停止滾動效果。

7.$("#content").bind("mouseout",function(){StartScroll();}),註冊mouseout事件處理函式,當滑鼠離開元素的時候,停止滾動效果。

8.StartScroll(),開始滾動效果。

9.function StartScroll(){objInterval=setInterval("verticalloop()",interval);},此函式可以進行無間斷滾動效果。

10.function StopScroll(){window.clearInterval(objInterval)},停止定時器函式的執行。

11.function verticalloop(){},此函式實現了向上滾動效果。

12.if($("#content").scrollTop()>=$("#top").outerHeight()){ 

  $("#content").scrollTop($("#content").scrollTop()-$("#top").outerHeight()); 

},如果向上滾動的尺寸大於等於top元素的外圍高度,那麼就將滾動之設定為0,這個其實很好理解,bottom中的內容和top中的是一樣的,當top中的內容完全向上滾動完畢的話,那麼就重新滾動。

13.$("#content").animate({"scrollTop": $("#content").scrollTop()+stepsize +"px"},600),設定每次滾動的相關引數。

二.相關閱讀:

1.setInterval()函式可以參閱setInterval()函式用法詳解一章節。

2.clearInterval()函式可以參閱window.clearInterval()方法一章節。

3.scrollTop()函式可以參閱jQuery scrollTop()函式用法詳解一章節。

4.outerHeight()函式可以參閱jQuery outerHeight()方法一章節。

5.animate()函式可以參閱jQuery animate()方法一章節。

相關文章