原生js實現(xiàn)移動端觸摸輪播的示例代碼
更新時間:2017年12月22日 09:55:40 作者:hjw453321854
下面小編就為大家分享一篇原生js實現(xiàn)移動端觸摸輪播的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
PC端上實現(xiàn)圖片輪播效果很簡單,只要通過使用click事件就可以非常簡單的實現(xiàn)效果,但是在移動端上,就要通過核心的touch事件來實現(xiàn)。
下面是移動端手指滑動輪播圖的完整代碼。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <style> *{margin:0;padding:0;} li{list-style:none;} .lb{width:320px;height:130px;position:relative;margin:20px auto;overflow: hidden;} .lb .lb_img{width:2240px;height:130px;position:absolute;left:-320px;} .lb .lb_img img{width:320px;height:130px;float:left;display:block;} .lb ul{width:35px;height:4px;position:absolute;bottom:10px;left:50%;margin-left:-15px;} .lb ul li{width:4px;height:4px;border-radius:2px;border:0.25px solid #fff;margin-left:2.5px;background:#666;float:left;cursor:pointer;} .lb ul .active{background:#fff;} .lb ul li:hover{background:#fff;} </style> </head> <body> <div class="lb"> <div class="lb_img"> <img src="img/4.jpg"> <img src="img/0.jpg"> <img src="img/1.jpg"> <img src="img/2.jpg"> <img src="img/3.jpg"> <img src="img/4.jpg"> <img src="img/0.jpg"> </div> <ul> <li class="active"></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> <script> var lb = document.querySelector(".lb"); var lb_img = document.querySelector(".lb .lb_img"); var img = document.querySelectorAll(".lb .lb_img img") var lis = document.querySelectorAll(".lb ul li"); var i=2; // 初始化手指坐標點 var startPoint = 0; var startEle = 0; //手指按下 lb.addEventListener("touchstart",function(e){ startPoint = e.changedTouches[0].pageX; startEle = lb_img.offsetLeft; clearInterval(Time) }); //手指滑動 lb.addEventListener("touchmove",function(e){ var currPoint = e.changedTouches[0].pageX; var disX = currPoint - startPoint; var left = startEle + disX; lb_img.style.left = left + "px"; }); //當手指抬起的時候, lb.addEventListener("touchend",function(e){ var currPoint = e.changedTouches[0].pageX; var disX = - (currPoint - startPoint); var left = startEle + disX; if(disX > 150){ i++; for(var q=0;q<lis.length;q++){ lis[q].className = ''; } if(i == 7){ i=2; } lis[i-2].className= "active" ; lb_img.style.left = -320*(Math.round(disX/320)+i+1)+ 'px'; }else{ lb_img.style.left = -320*(i-1) + "px"; } if(disX < -150){ i--; for(var q=0;q<lis.length;q++){ lis[q].className = ''; } if(i == 1){ i=6; } lis[i-2].className= "active" ; lb_img.style.left = -320*(Math.round(-disX/320)+i-2) + 'px'; }else{ lb_img.style.left = -320*(i-1) + "px"; } Time=setInterval(autoplay,2000); }) //設(shè)置定時器 Time=setInterval(autoplay,2000); function autoplay(){ i++; for(var q=0;q<lis.length;q++){ lis[q].className = ''; } if(i == 7){ i=2; } lis[i-2].className= "active" ; for(var a=0; a<320;a++){ setTimeout(function(){ var left = lb_img.style.left ? lb_img.style.left : "-320px"; left = parseInt(left)-1; if(left<-1920){ left=-321; } lb_img.style.left = left + "px"; },a); } } </script> </body> </html>
以上這篇原生js實現(xiàn)移動端觸摸輪播的示例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Bootstrap布局之柵格系統(tǒng)學(xué)習(xí)筆記
這篇文章主要為大家詳細介紹了Bootstrap布局之柵格系統(tǒng)的學(xué)習(xí)筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05JavaScript對象數(shù)組排序?qū)嵗椒\析
這篇文章主要介紹了JavaScript對象數(shù)組排序?qū)嵗椒\析的相關(guān)資料,非常不錯,具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06JS實現(xiàn)瀏覽器狀態(tài)欄文字從右向左彈出效果代碼
這篇文章主要介紹了JS實現(xiàn)瀏覽器狀態(tài)欄文字從右向左彈出效果,涉及JavaScript結(jié)合時間函數(shù)遍歷字符串及動態(tài)改變狀態(tài)欄顯示效果的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10基于JavaScript實現(xiàn)點擊頁面任何位置返回
這篇文章主要介紹了基于JavaScript實現(xiàn)點擊頁面任何位置返回的實例代碼,需要的朋友可以參考下2016-08-08