收藏
回答

swiper组件快速滑动会抖动是怎么会是?

swiper组件快速滑动的时候会疯狂抖动像鬼畜一样而且根本停不下来,请问有什么解决方案吗?

回答关注问题邀请回答
收藏

3 个回答

  • Marvin
    Marvin
    2020-01-20

    如果你确实需要修改current的值,又担心swiper的抖动,建议你将修改current值的代码,放入setTimeout中异步触发,并且每次都clearTimeout,这样不管你滑动的多快,只执行一次赋值行为。解决赋值导致的自动滚动和你手动快速滑动引起的冲突导致的抖动bug。

    类似于:

    if (swiperCurrentTimeout) clearTimeout(swiperCurrentTimeout);
    swiperCurrentTimeout = setTimeout(() => {this.current = current;});
    
    2020-01-20
    有用 2
    回复 1
    • 天王盖地虎
      天王盖地虎
      2023-07-14
      完美解决问题
      2023-07-14
      回复
  • 卢霄霄
    卢霄霄
    2019-10-31

    不要手动滑动了还去设current

    仔细阅读文档的 bug & tip

    https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html

    2019-10-31
    有用 1
    回复 11
    • August
      August
      2019-10-31
      多谢大佬,是没考虑到这个方面,感谢
      2019-10-31
      回复
    • 卢霄霄
      卢霄霄
      2019-10-31回复August
      ~~
      2019-10-31
      回复
    • 卢霄霄
      卢霄霄
      2019-10-31回复August
      ~~
      2019-10-31
      回复
    • _
      _
      2019-12-13
      大佬 我是自定义的那个指示点 ,又要自定切换 那要怎么处理啊?source是touch还是autopaly我应该都setData的
      2019-12-13
      回复
    • 卢霄霄
      卢霄霄
      2019-12-13回复_
      用另一个变量,比如 indicator,然后点击的事件里去修改current,然后在 swiper里修改 indicator
      2019-12-13
      回复
    查看更多(6)
  • 老张
    老张
    2019-10-31

    如果去掉JS代码也同样情况,再来问这个问题。

    2019-10-31
    有用
    回复
登录 后发表内容
问题标签