移动端实现文字轮播_实现移动端轮播图

1、移动端实现滑动切换轮播图,主要由touch(touchstart,touchmove,touchend)事件实现。在touch事件中可以通过 e.touches[0].clientX获取当前触摸点的位置,在touchend事件中没有e.touches[0].clientX值

var banner=function(){

/*

*1、无缝滚动和无缝滑动

*2、点盒子对应改变

*3、可以滑动

*4、当滑动距离不够时 吸附回去

*5、当滑动距离够了时 跳转上/下一张

*/

var banner=document.querySelector('.jd_bannar');

var imgBox=banner.querySelector('ul:first-child');

var pointBox=banner.querySelector('ul:last-child');

var points=pointBox.querySelectorAll('li');

var width=banner.offsetWidth;

var addTransition=function(){

imgBox.style.transition = 'all 0.2s';

imgBox.style.webkitTransition='all 0.2s';

}

var removeTransition=function(){

imgBox.style.transition = 'none';

imgBox.style.webkitTransition='none';

}

var setTranslateX=function(tx){

imgBox.style.transform = 'translateX('+tx+'px)';

imgBox.style.webkitTransform = 'translateX('+tx+'px)';

}

var index=1;

var timer=setInterval(function(){

index++;

addTransition();

setTranslateX((-index*width))

},1000)

//监听 transition结束之后的事件

imgBox.addEventListener('transitionend',function(){

if(index==9){

index=1;

removeTransition();

setTranslateX((-index*width))

}else if(index<=0){

index=8;

removeTransition();

setTranslateX((-index*width))

}

setPoint()

})

var setPoint=function(){

for(var i=0;i

points[i].classList.remove('now')

}

points[index-1].classList.add('now')

}

var stratX=0;

var disX=0;

var ismove=false;

imgBox.addEventListener('touchstart',function(e){

clearInterval(timer)

stratX=e.touches[0].clientX;

})

imgBox.addEventListener('touchmove',function(e){

var moveX=e.touches[0].clientX;

disX=moveX-stratX;

/*计算定位*/

var tx=-index*width+disX;

//清除定位

removeTransition();

setTranslateX(tx);

ismove=true;

})

imgBox.addEventListener('touchend', function(e){

/*disX确定滑动距离,判断是否吸附或者跳转*/

if(ismove && Math.abs(disX)

addTransition();

setTranslateX(-index*width)

}else{

//判断滑动方向

if(disX>0){

index--;

}else{

index++

}

addTransition();

setTranslateX(-index*width)

}

clearInterval(timer)

timer=setInterval(function(){

index++;

addTransition();

setTranslateX((-index*width))

},1000)

//初始化数据

stratX=0;

ismove=false;

disX=0;

})

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值