DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 關於網頁中的無縫滾動的js代碼
關於網頁中的無縫滾動的js代碼
編輯:關於JavaScript     

隨便打開一個網頁,基本上都會看到無縫滾動或者輪播圖,比如淘寶還有360官網的首頁

觀察這些輪播圖可以發現圖片可以來回循環地切換,那麼是怎樣做到的呢?

做到輪播圖或者說無縫滾動主要有兩種方式,一種是通過對圖片的明暗即透明圖的改變來顯示或隱藏圖片,另一種是通過運動框架,將圖片顯示在可視區域。這兩種方式都會用到同一個東西,那就是定時器。

JavaScript中的定時器有兩種,1.setInterval();2.setTimeout();相對應的關閉定時器也有兩種方法,clearInterval()和clearTimeout()。兩種定時器的區別是前者可以執行多次,而後者只執行一次。

這次只說無縫滾動,下篇介紹輪播圖。

實現簡單的無縫滾動的代碼如下:

/*完整的代碼*/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<style>
div{position:relative;width:630px;height:220px;border:solid 2px black;overflow:hidden;}
ul{position:absolute;top:10px;left:0;}
img{width:200px;height:200px;float:left;margin-right:10px;border:2px solid yellow;}
li{list-style:none;margin:0;padding:0;}
ul{margin:0;padding:0;}
</style>
<script>
window.onload=function(){
var oUl=document.getElementById("main");
var aLi=oUl.getElementsByTagName("img");
var oInput=document.getElementsByTagName("input")[0];
oUl.innerHTML+=oUl.innerHTML;
oUl.style.width=aLi.length*aLi[0].offsetWidth+"px";
var timer=null;
setInterval(function(){
oUl.style.left=oUl.offsetLeft-8+"px";
if(oUl.offsetLeft<-oUl.offsetWidth/2){
oUl.style.left="0px";
}
},30);
};
</script>
</head>
<body>
<div>
<ul id="main">
<li><img src="../img/1.jpg"></li>
<li><img src="../img/2.jpg"></li>
<li><img src="../img/3.jpg"></li>
<li><img src="../img/4.jpg"></li>
<li><img src="../img/9.jpg"></li>
</ul>
</div>
</div>
</body>
</html>

/-----------------------------------------------------------------------------------------------------------------------------------------------------------/

無縫滾動的布局比較簡單,下面主要講解JS部分內容:

首先分別獲取到ul和li,再將ul裡面的內容復制一份,通過js動態修改ul的寬度(如果要做到上下無縫滾動,則修改其寬度),最後開定時器,代碼中是每隔30微秒ul向左移動8個像素,而當ul的可視左邊距小於ul總長度的一半時,使其變為0。由於計算機的運行速度非常快,所以幾乎感覺不到這一變化。我們看到的只是圖片不斷地向左移動,無休止的運動。

以上所述是小編給大家介紹的關於網頁中的無縫滾動的js代碼,希望對大家有所幫助!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved