微信小程序swiper组件设置滚动监听(bindchange)导致swiper item闪烁、跳动、卡住BUG。

最近在使用swiper的时候,下拉刷新后导致swiper item不断的跳动卡住。

微信小程序swiper组件设置滚动监听(bindchange)导致swiper item闪烁、跳动、卡住BUG。_第1张图片

微信小程序swiper组件设置滚动监听(bindchange)导致swiper item闪烁、跳动、卡住BUG。_第2张图片

微信小程序swiper组件设置滚动监听(bindchange)导致swiper item闪烁、跳动、卡住BUG。_第3张图片

一开始以为是下拉刷新导致的,后面在开发社区看到相关的问题,是由于swiper导致的。

在手动滑动swiper时打出以下消息:

微信小程序swiper组件设置滚动监听(bindchange)导致swiper item闪烁、跳动、卡住BUG。_第4张图片

而自动轮播的detail->source 是autoplay

微信小程序swiper组件设置滚动监听(bindchange)导致swiper item闪烁、跳动、卡住BUG。_第5张图片

 

在拖动的时候和自动轮播产生了冲突,导致setData方法不断被调用。所以swiper item会反复的切换current,就产生了来回抖动的问题。

解决办法:

微信小程序swiper组件设置滚动监听(bindchange)导致swiper item闪烁、跳动、卡住BUG。_第6张图片

我直接不设置current,以上代码是去掉current后成功执行的代码。

这样即使手动或者自动滑动设置的current也不会影响到swiper item。

而且我也并没有需要使用到设置 swiper current的地方。

主要坑就是复制以前的代码。当时没注意哪里需要设置current。

在这里只是获取了current,用来设置自定义的indicator-dots

总结一下:如果要控制current 最好是autoplay没开启的情况下使用。

你可能感兴趣的:(javascript,微信小程序)