支持移動(dòng)端原生js輪播圖
更新時(shí)間:2017年02月16日 08:30:14 作者:死垃圾
這篇文章主要介紹了支持移動(dòng)端原生js輪播圖的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
直接上代碼,自行復(fù)制粘貼,本人是新手,歡迎指正。
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>輪播圖</title> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" /> <style type="text/css"> .container{ width: 500px; height: 400px; overflow: hidden; margin: 50px auto; position: relative; } .list{ width: 2500px; height: 400px; position: absolute; left: 0px; } .list img{ float: left; height: 400px; width: 500px; } .buttons{ position: absolute; width: 75px; height: 20px; bottom: 10px; left: 50%; margin-left: -38px; z-index: 2; } .buttons span{ width: 10px; height: 10px; margin-right: 5px; display: inline-block; border-radius: 5px; background-color: gray; opacity: 0.5; cursor: pointer; } .buttons .on{ background-color: rgb(255,50,50); opacity: 0.8; } .arrow{ position: absolute; background-color: gray; opacity: 0.5; height: 40px; width: 40px; color: #fff; text-decoration: none; line-height: 40px; font-size: 28px; font-weight: 800; text-align: center; } #prev{ top:50%; left: 10px; margin-top:-20px; } #next{ top:50%; right: 10px; margin-top:-20px; } </style> </head> <body> <div id="container" class="container"> <div id="list" class="list"> <img src="1.jpg"> <img src="2.jpg"> <img src="3.jpg"> <img src="4.jpg"> <img src="5.jpg"> </div> <div id="buttons" class="buttons"> <span index="0" class="on"></span><!-- --><span index="1"></span><!-- --><span index="2"></span><!-- --><span index="3"></span><!-- --><span index="4"></span> </div> <a href="javascript:;" rel="external nofollow" rel="external nofollow" id="prev" class="arrow"><</a> <a href="javascript:;" rel="external nofollow" rel="external nofollow" id="next" class="arrow">></a> </div> <script type="text/javascript"> window.onload = function(){ var container = document.getElementById('container'); var list = document.getElementById('list'); var buttons = document.getElementById('buttons'); var buttonsItem = buttons.getElementsByTagName('span'); var prev = document.getElementById('prev'); var next = document.getElementById('next'); var index = 0; var startX = 0; var endX = 0; container.addEventListener('touchend',function(event){ if(event.changedTouches.length==1&&this.getAttribute('disabled')!='disabled'){ var touch = event.changedTouches[0]; endX = touch.pageX; var offset = endX-startX; console.log(offset); if(Math.abs(offset)>=50){ if(offset<0){// 右滑 nextMethod(); }else{ prevMethod(); } } } }); container.addEventListener('touchmove',function(){ event.preventDefault(); }) container.addEventListener('touchstart',function(event){ if(event.targetTouches.length==1&&this.getAttribute('disabled')!='disabled'){ var touch = event.targetTouches[0]; startX = touch.pageX; } }) prev.addEventListener('click',function(){ if (this.getAttribute('disabled')=='disabled') { return false; } prevMethod(); }); next.addEventListener('click',function(){ if (this.getAttribute('disabled')=='disabled') { return false; } nextMethod(); }); for(var i=0;i<buttonsItem.length;i++){ buttonsItem[i].onclick = function(){ if (this.getAttribute('disabled')=='disabled') { return false; } var i = this.getAttribute('index'); var length = Math.abs((i-index)*500); var direction = 'right'; if (length<0) { direction = 'left'; } index = i; document.getElementsByClassName('on')[0].setAttribute('class',''); buttonsItem[index].className = 'on'; animate(direction,1,length); } } function prevMethod(){ if(index==0){ index = 4; animate('right',40,2000); }else{ index--; animate('left',1,500); } document.getElementsByClassName('on')[0].setAttribute('class',''); // buttonsItem[index].setAttribute('class','on'); buttonsItem[index].className = 'on'; } function nextMethod(){ if(index==4){ index = 0; animate('left',40,2000); }else{ index++; animate('right',1,500); } document.getElementsByClassName('on')[0].setAttribute('class',''); buttonsItem[index].className = 'on'; } function animate(direction,speed,length){ var end = length/speed; var count = 0; for(var i=0;i<end;i++){ setTimeout(function(){ count++; var left = list.offsetLeft; if (direction=='right') { left -= speed; }else{ left += speed; } list.style.left = left+'px'; if(count<end-1){ disabledButtons(); }else{ resumeButtons(); } },speed*i); } } function disabledButtons(){ for(var i=0;i<5;i++){ buttonsItem[i].setAttribute('disabled','disabled'); } prev.setAttribute('disabled','disabled'); next.setAttribute('disabled','disabled'); container.setAttribute('disabled','disabled'); } function resumeButtons(){ for(var i=0;i<5;i++){ buttonsItem[i].removeAttribute('disabled'); } prev.removeAttribute('disabled'); next.removeAttribute('disabled'); container.removeAttribute('disabled'); } } </script> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- js實(shí)現(xiàn)移動(dòng)端輪播圖滑動(dòng)切換
- javascript實(shí)現(xiàn)移動(dòng)端輪播圖
- 原生js實(shí)現(xiàn)移動(dòng)端Touch輪播圖的方法步驟
- js實(shí)現(xiàn)移動(dòng)端輪播圖
- JS實(shí)現(xiàn)點(diǎn)擊拉拽輪播圖pc端移動(dòng)端適配
- js原生實(shí)現(xiàn)移動(dòng)端手指滑動(dòng)輪播圖效果的示例
- 利用純js + transition動(dòng)畫實(shí)現(xiàn)移動(dòng)端web輪播圖詳解
- js實(shí)現(xiàn)移動(dòng)端輪播圖效果
- JS仿京東移動(dòng)端手指撥動(dòng)切換輪播圖效果
- 基于javascript實(shí)現(xiàn)移動(dòng)端輪播圖效果
相關(guān)文章
js使用DOM操作實(shí)現(xiàn)簡(jiǎn)單留言板的方法
這篇文章主要介紹了js使用DOM操作實(shí)現(xiàn)簡(jiǎn)單留言板的方法,涉及javascript中DOM操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04js實(shí)現(xiàn)的奧運(yùn)倒計(jì)時(shí)時(shí)鐘效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)的奧運(yùn)倒計(jì)時(shí)時(shí)鐘效果代碼,可實(shí)現(xiàn)根據(jù)指定時(shí)間進(jìn)行倒計(jì)時(shí)的實(shí)時(shí)顯示效果,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-12-12JSON基本語(yǔ)法及與JavaScript的異同實(shí)例分析
這篇文章主要介紹了JSON基本語(yǔ)法及與JavaScript的異同,結(jié)合實(shí)例形式分析了json簡(jiǎn)單值、對(duì)象、數(shù)組三種類型值使用技巧,需要的朋友可以參考下2019-01-01swiper 解決動(dòng)態(tài)加載數(shù)據(jù)滑動(dòng)失效的問(wèn)題
下面小編就為大家分享一篇swiper 解決動(dòng)態(tài)加載數(shù)據(jù)滑動(dòng)失效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02JavaScript(JS) 壓縮 / 混淆 / 格式化 批處理工具
本工具所有的功能實(shí)現(xiàn)都是由 ttp://jscompress.sinaapp.com/api 處理.(包括現(xiàn)在可以使用的這個(gè)在線壓縮)2010-12-12