js實現(xiàn)無縫滾動圖(可控制當前滾動的方向)
更新時間:2017年02月22日 10:09:44 作者:漫步未來
本文主要分享了js實現(xiàn)無縫滾動圖的示例代碼,這個版本可以控制左右滾動,鼠標點擊對應的廣告會自動滑動把廣告完全展示出來,當鼠標離開,接著繼續(xù)滾動。具有很好的參考價值,下面跟著小編一起來看下吧
這個版本可以控制左右滾動,鼠標點擊對應的廣告會自動滑動把廣告完全展示出來。還實現(xiàn)了記錄當前滾動的方向,當鼠標離開,接著繼續(xù)滾動?。?!
效果圖:
代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style type = "text/css"> *{margin: 0; padding: 0;} li { list-style: none; } .box { width: 800px; height: 450px; margin: 50px auto; overflow: hidden; position: relative; } .box span { width: 40px; height: 60px; display: block; position: absolute; top: 225px; margin-top: -20px; cursor: pointer; z-index: 1; } .box #left { background: url('http://cdn.attach.qdfuns.com/notes/pics/201701/14/042311cbd7gbjd7sggkd2b.png') no-repeat; left: 0; display: none; } .box #right { background: url('http://cdn.attach.qdfuns.com/notes/pics/201701/14/042241w8z4hx4m4pjhyjzs.png') no-repeat; right: 0; display: none; } #ad { width: 4000px; height: 450px; position: absolute; } #ad li { float: left; } </style> <script type = "text/javascript"> window.onload = function(){ var ad = document.getElementById("ad"); var lef = document.getElementById("left"); var rig = document.getElementById("right"); var timer = null; //管理定時器 var aspect = true; function animate(obj,speed){ //關閉上一個定時器 clearInterval(obj.timer); //管理定時器 obj.timer = setInterval(autoAd,30); function autoAd(){ //判斷左走或者右走 if(speed > 0){ aspect = true; if(obj.offsetLeft >= 0){ obj.style.left = -3200 + 'px'; } }else { aspect = false; if(obj.offsetLeft <= -3200){ obj.style.left = 0; } } //勻速動畫: 盒子當前的位置 + 步長 obj.style.left = obj.offsetLeft + speed +"px"; } } animate(ad,-5); //鼠標劃入顯示控制按鈕并關閉 ad.parentNode.onmouseover = function(){ clearInterval(ad.timer); lef.style.display = "block"; rig.style.display = "block"; }; //鼠標離開隱藏控制按鈕并啟動定時器 ad.parentNode.onmouseout = function(){ clearInterval(ad.timer); clearInterval(timer); lef.style.display = "none"; rig.style.display = "none"; if(aspect){ animate(ad,5); }else{ animate(ad,-5); } }; ad.onclick = function(event){ //關閉自動輪播定時器 clearInterval(ad.timer); clearInterval(timer); var event = event || window.event; if(event.target){ var target = - parseInt(event.target.alt) * 800; }else{ var target = - parseInt(event.srcElement.alt) * 800; } timer = setInterval(function(){ var step = (target - ad.offsetLeft) / 10; step = step > 0 ? Math.ceil(step):Math.floor(step); ad.style.left = ad.offsetLeft + step + "px"; if(ad.offsetLeft%800 == 0){ clearInterval(timer); } },20) } //右移動 lef.onclick = function(){ clearInterval(timer); animate(ad,5); }; //左移動 rig.onclick = function(){ clearInterval(timer); animate(ad,-5); }; } </script> </head> <body> <div class="box"> <ul id="ad"> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153lscsitwp7sszb6zs.jpg" alt="0"></li> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042152pfbkbfe8vbtvulfu.jpg" alt="1"></li> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153u3jgn0ds43ndd3dz.jpg" alt="2"></li> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042152juuohne22z60hbsb.jpg" alt="3"></li> <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153lscsitwp7sszb6zs.jpg" alt="4"></li> </ul> <span id="left"></span> <span id="right"></span> </div> </body> </html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關文章
可以自動輪換的頁簽 tabs with auto play fucntion
HTML、CSS方面改寫了一下結構,用了一個DL javascript方面可以選擇不斷自動循環(huán),或者只循環(huán)一次的,點擊以后繼續(xù)循環(huán),或者停止循環(huán)2008-02-02JavaScript實現(xiàn)動態(tài)生成表格案例詳解
本文主要介紹了通過JavaScript實現(xiàn)一個動態(tài)添加表格的案例,當點擊添加按鈕時,可以彈出一個表單,然后將輸入的內(nèi)容添加到表格中,也可以將表格中的整行內(nèi)容清除。感興趣的可以學習一下2021-12-12js扁平數(shù)組和樹結構相互轉(zhuǎn)換處理方法
這篇文章主要給大家介紹了關于js扁平數(shù)組和樹結構相互轉(zhuǎn)換處理方法的相關資料,之前面試有遇到過這個問題,面試官問如何把一個數(shù)組數(shù)據(jù)扁平,然后轉(zhuǎn)化為Tree結構數(shù)據(jù),工作中剛好也用到了,所以總結下,需要的朋友可以參考下2023-07-07