vant swiper 监听左滑右滑&禁止左滑功能

40 篇文章 7 订阅

前言:个别需求会要求禁止swiper的左滑或者右滑功能,虽然原生swiper可支持,但因版本问题,个别引用有问题;或者此时功能已开发完成,再换组件开发成本较大,所以需要再vant的基础上进行兼容。具体实现如下

<van-swipe class="my-swipe" style="height: 200px;" vertical :touchable='touchable' @change='changeSwipe'>
  <van-swipe-item  
   @touchstart="onTouchStart" 
   @touchmove="onTouchMove" 
   @touchend="onTouchEnd(index)">1</van-swipe-item>
  <van-swipe-item>2</van-swipe-item>
  <van-swipe-item>3</van-swipe-item>
  <van-swipe-item>4</van-swipe-item>
</van-swipe>


<style>
  .my-swipe .van-swipe-item {
    color: #fff;
    font-size: 20px;
    line-height: 150px;
    text-align: center;
    background-color: #39a9ed;
  }
</style>
// data中
startX: null,
touchAble: true, // 是否可通过触摸滑动

// methods中
// 记录每次滑动位置
changeSwipe(index){
  // index即为改变后的页面索引,可写需要操作
}
// 记录初始滑动位置
 onTouchStart (e) {
   e = e || event
   e.preventDefault()
   if(e.touches.length == 1 ) {
     this.startX = e.touches[0].clientX
   }
},
 // 记录每次滑动位置
 onTouchMove (e) {
   e = e || event
   e.preventDefault()
   let surrentStartX 
   if(e.touches.length == 1 ) {
     surrentStartX = e.touches[0].clientX
   }
   if(surrentStartX < this.startX ) {
     // 右滑
     this.touchAble = true
     this.$refs.vantSwiper.resize()
   } else {
     // 左滑
     this.touchAble = false
     this.$refs.vantSwiper.resize()
   }
 },
 onTouchEnd (position) {
 
 },

移动端各种事件整理参考网址:https://www.cnblogs.com/imwtr/p/5882166.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hyduan200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值