收藏
回答

swiper如何实现禁止手动滑动

问题模块
API和组件

swiper如何实现禁止手动滑动,找了好久,试了很多方法都没用

最后一次编辑于  2017-06-29  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

5 个回答

  • 赵青山
    赵青山
    2017-06-29

    阻止事件传递用catch

    2017-06-29
    赞同
    回复
  • 背着壳的唔花肉
    背着壳的唔花肉
    2017-06-29

    用了cath没用,不管将return false的方法加载swiper-item还是里面的image或者是swiper上它都没有阻止swiper的默认行为。


    不过现在解决了,只要将swiperz-index的值设为-1就可以了


    2017-06-29
    赞同
    回复 1
    • 枫儿
      枫儿
      2018-10-15

      将swiper的 z-index 设置为-1 也没作用

      2018-10-15
      回复
  • 赵青山
    赵青山
    2017-06-29

    swiper执行滑动是需要接收touchmove事件的,你在swiper的子控件比如swiper-item中用catchtouchmove将事件截获后,swiper由于不能接收到touchmove事件,所以无法滑动

    2017-06-29
    赞同
    回复
  • 海宏
    海宏
    2017-06-29

    额,创建一个跟swiper宽高一样的透明层,盖在他上面 >_ >

    2017-06-29
    赞同
    回复
  • LastLeaf
    LastLeaf
    2017-06-30

    感谢反馈。最佳方案是 @赵子龙 的方案。在swiper内部的节点上拦截touchmove事件 `catchtouchmove="FUNCTION_NAME"` 可以阻止swiper对touchmove的响应。

    2017-06-30
    赞同
    回复 3
    • Yrobot
      Yrobot
      04-18

      要是需要动态修改可滑动状态呢?利用捕获事件是不可靠的。


      官方就应该在swiper上加一个可滑动的属性啊。

      04-18
      回复
    • LastLeaf
      LastLeaf
      04-18回复Yrobot

      catchtouchmove="{{eventHandler}}"

      eventHandler 传一个空字符串可以禁用事件拦截

      04-18
      1
      回复
    • Yrobot
      Yrobot
      04-18回复LastLeaf

      并不是根本解决方法,因为小程序的catch有bug,请参看:https://developers.weixin.qq.com/community/develop/doc/000ce4903f4eb825cc684d4d85b400


      catch之后,子节点都无法滑动了。

      04-18
      回复