ps:問題 組件swiper(輪播圖)真機上不自動滾動 一直卡在那里抖動
以前遇到這個問題,官方一直沒有正面回復。就擱置了,不過有大半年沒寫小程序了也沒去關注,今天就去看了下官方文檔,發覺更新了點好東西

就一直抖動這個問題,官方更新了一下出現bug的原因,沒有具體闡述怎么去解決,但是總體說也給出了一個方案,大家可以去嘗試一下是否還出現這個問題。下面是我根據官方,一直找了部分資料做了些處理就不說了,直接貼代碼
wxml
<view class="swiper">
<swiper
autoplay="true" interval="4000" current="{{swiperCurrent}}" duration="1000" bindchange="swiperChange">
<swiper-item wx:for="{{bannerList}}" wx:key="*this" data-page="activity" data-id="{{item.id}}" data-type="{{item.type}}">
<image src='{{item.pictureUrl}}' class='u-img-slide' ></image>
</swiper-item>
</swiper>
<view class="dots">
<!-- 自定義角標 -->
<block wx:for="{{bannerList}}" wx:key="*this">
<view class="dot{{index == swiperCurrent ? ' active' : ''}}"></view>
</block>
</view>
</view>
js
swiperChange(e) {
let {current, source} = e.detail
if(source === 'autoplay' || source === 'touch') {
//根據官方 source 來進行判斷swiper的change事件是通過什么來觸發的,autoplay是自動輪播。touch是用戶手動滑動。其他的就是未知問題。抖動問題主要由於未知問題引起的,所以做了限制,只有在自動輪播和用戶主動觸發才去改變current值,達到規避了抖動bug
this.setData({
swiperCurrent: current
})
}
},
主要是為了規避輪播抖動的bug,大家有更好的方案也可以在文章下評論,我也可以及時去更新,謝謝
