關于網頁中的無縫滾動的js代碼
隨便打開一個網頁,基本上都會看到無縫滾動或者輪播圖,比如淘寶還有360官網的首頁
觀察這些輪播圖可以發(fā)現(xiàn)圖片可以來回循環(huán)地切換,那么是怎樣做到的呢?
做到輪播圖或者說無縫滾動主要有兩種方式,一種是通過對圖片的明暗即透明圖的改變來顯示或隱藏圖片,另一種是通過運動框架,將圖片顯示在可視區(qū)域。這兩種方式都會用到同一個東西,那就是定時器。
JavaScript中的定時器有兩種,1.setInterval();2.setTimeout();相對應的關閉定時器也有兩種方法,clearInterval()和clearTimeout()。兩種定時器的區(qū)別是前者可以執(zhí)行多次,而后者只執(zhí)行一次。
這次只說無縫滾動,下篇介紹輪播圖。
實現(xiàn)簡單的無縫滾動的代碼如下:
/*完整的代碼*/ <!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動態(tài)修改ul的寬度(如果要做到上下無縫滾動,則修改其寬度),最后開定時器,代碼中是每隔30微秒ul向左移動8個像素,而當ul的可視左邊距小于ul總長度的一半時,使其變?yōu)?。由于計算機的運行速度非常快,所以幾乎感覺不到這一變化。我們看到的只是圖片不斷地向左移動,無休止的運動。
以上所述是小編給大家介紹的關于網頁中的無縫滾動的js代碼,希望對大家有所幫助!
相關文章
WebApi+Bootstrap+KnockoutJs打造單頁面程序
這篇文章主要介紹了WebApi+Bootstrap+KnockoutJs打造單頁面程序的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-05-05基于javascript實現(xiàn)動態(tài)時鐘效果
這篇文章主要為大家詳細介紹了基于javascript實現(xiàn)動態(tài)時鐘效果的相關資料,動態(tài)顯示系統(tǒng)當前時間,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-02-02