移动端实现文字轮播_在js中如何实现移动端触摸轮播

下面我就为大家分享一篇原生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);

}

}

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值