下面我就为大家分享一篇原生js实现移动端触摸轮播的示例代码,具有很好的参考价值,希望对大家有所帮助。
PC端上实现图片轮播效果很简单,只要通过使用click事件就可以非常简单的实现效果,但是在移动端上,就要通过核心的touch事件来实现。
下面是移动端手指滑动轮播图的完整代码。
*{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;}
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[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[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);
})
//设置定时器
Time=setInterval(autoplay,2000);
function autoplay(){
i++;
for(var q=0;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
left=-321;
}
lb_img.style.left = left + "px";
},a);
}
}
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章: