關(guān)于網(wǎng)頁(yè)中的無(wú)縫滾動(dòng)的js代碼
隨便打開一個(gè)網(wǎng)頁(yè),基本上都會(huì)看到無(wú)縫滾動(dòng)或者輪播圖,比如淘寶還有360官網(wǎng)的首頁(yè)
觀察這些輪播圖可以發(fā)現(xiàn)圖片可以來(lái)回循環(huán)地切換,那么是怎樣做到的呢?
做到輪播圖或者說(shuō)無(wú)縫滾動(dòng)主要有兩種方式,一種是通過(guò)對(duì)圖片的明暗即透明圖的改變來(lái)顯示或隱藏圖片,另一種是通過(guò)運(yùn)動(dòng)框架,將圖片顯示在可視區(qū)域。這兩種方式都會(huì)用到同一個(gè)東西,那就是定時(shí)器。
JavaScript中的定時(shí)器有兩種,1.setInterval();2.setTimeout();相對(duì)應(yīng)的關(guān)閉定時(shí)器也有兩種方法,clearInterval()和clearTimeout()。兩種定時(shí)器的區(qū)別是前者可以執(zhí)行多次,而后者只執(zhí)行一次。
這次只說(shuō)無(wú)縫滾動(dòng),下篇介紹輪播圖。
實(shí)現(xiàn)簡(jiǎn)單的無(wú)縫滾動(dòng)的代碼如下:
/*完整的代碼*/ <!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>
/-----------------------------------------------------------------------------------------------------------------------------------------------------------/
無(wú)縫滾動(dòng)的布局比較簡(jiǎn)單,下面主要講解JS部分內(nèi)容:
首先分別獲取到ul和li,再將ul里面的內(nèi)容復(fù)制一份,通過(guò)js動(dòng)態(tài)修改ul的寬度(如果要做到上下無(wú)縫滾動(dòng),則修改其寬度),最后開定時(shí)器,代碼中是每隔30微秒ul向左移動(dòng)8個(gè)像素,而當(dāng)ul的可視左邊距小于ul總長(zhǎng)度的一半時(shí),使其變?yōu)?。由于計(jì)算機(jī)的運(yùn)行速度非???,所以幾乎感覺不到這一變化。我們看到的只是圖片不斷地向左移動(dòng),無(wú)休止的運(yùn)動(dòng)。
以上所述是小編給大家介紹的關(guān)于網(wǎng)頁(yè)中的無(wú)縫滾動(dòng)的js代碼,希望對(duì)大家有所幫助!
- JS觸摸屏網(wǎng)頁(yè)版仿app彈窗型滾動(dòng)列表選擇器/日期選擇器
- JS實(shí)現(xiàn)網(wǎng)頁(yè)上隨滾動(dòng)條滾動(dòng)的層效果代碼
- js網(wǎng)頁(yè)滾動(dòng)條滾動(dòng)事件實(shí)例分析
- JavaScript控制網(wǎng)頁(yè)平滑滾動(dòng)到指定元素位置的方法
- JS實(shí)現(xiàn)網(wǎng)頁(yè)滾動(dòng)條感應(yīng)鼠標(biāo)變色的方法
- js判斷iframe內(nèi)的網(wǎng)頁(yè)是否滾動(dòng)到底部觸發(fā)事件
- 實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容水平或垂直滾動(dòng)的Javascript代碼
- js網(wǎng)頁(yè)側(cè)邊隨頁(yè)面滾動(dòng)廣告效果實(shí)現(xiàn)
- JavaScript實(shí)現(xiàn)瀏覽器網(wǎng)頁(yè)自動(dòng)滾動(dòng)并點(diǎn)擊的示例代碼
相關(guān)文章
屏蔽網(wǎng)頁(yè)右鍵復(fù)制和ctrl+c復(fù)制的js代碼
解決的方法就是直接把網(wǎng)頁(yè)保存下來(lái)然后刪掉下面這段js代碼,然后就可以正常用右鍵菜單,也可以通過(guò)設(shè)置瀏覽器的安全級(jí)別到最高級(jí)別來(lái)解決問(wèn)題2013-01-01怎樣用Javascript實(shí)現(xiàn)建造者模式
這篇文章主要介紹了怎樣用Javascript實(shí)現(xiàn)建造者模式,想學(xué)習(xí)設(shè)計(jì)模式的同學(xué),可以參考下2021-04-04Javascript中設(shè)置默認(rèn)參數(shù)值示例
這篇文章主要介紹了Javascript中默認(rèn)參數(shù)值的設(shè)置,很簡(jiǎn)單,但很實(shí)用,需要的朋友可以參考下2014-09-09WebApi+Bootstrap+KnockoutJs打造單頁(yè)面程序
這篇文章主要介紹了WebApi+Bootstrap+KnockoutJs打造單頁(yè)面程序的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05js插件dropload上拉下滑加載數(shù)據(jù)實(shí)例解析
這篇文章主要為大家詳細(xì)解析了js插件dropload上拉下滑加載數(shù)據(jù)實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07JavaScript實(shí)現(xiàn)緩動(dòng)動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)緩動(dòng)動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11基于javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了基于javascript實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘效果的相關(guān)資料,動(dòng)態(tài)顯示系統(tǒng)當(dāng)前時(shí)間,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02javascript 發(fā)布-訂閱模式 實(shí)例詳解
這篇文章主要介紹了javascript 發(fā)布-訂閱模式,結(jié)合實(shí)例形式詳細(xì)分析了javascript發(fā)布-訂閱模式基本功能、原理、實(shí)現(xiàn)方法與相關(guān)使用技巧,需要的朋友可以參考下2023-06-06