手写swiper组件基本原理

主要使用touchstart,touchmove,touchend事件

touchstart时记录用户触摸点的x,y坐标,存入数组[x,y],将slide Container的transition设置为0s(默认有transition: all 0s ease 0s)

touchmove事件也会进行触摸位置移动,

触摸的距离len为用触摸点的x坐标e.touches[0].clientX减去touchstart时记录的数组里的x坐标.(得出的len为负值)

移动的位置为:

负的slide container的宽度clientWidth*currentIndex + len

touchend事件

当不是第一或者最后一张的时候,currentIndex加1,设置transition时间,

设置移动距离distance为itemWidth * currentIndex,设置transform的translate为(-distance px,0),其中itemWidth为slidecontainer的宽度

导航小圆点

初始化的时候创建一个数组,数组长度为slider的长度

根据currentIndex进行样式变换,currentIndex跟当前的小圆点index一致的时候,添加特殊的class,比如背景色,更大的width等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值