1. 程式人生 > >swiper在vue專案中loop迴圈輪播失效

swiper在vue專案中loop迴圈輪播失效

版權宣告:本文為博主原創文章,轉載請註明來源。 https://blog.csdn.net/dclnet/article/details/80951884

長話短說,在vue(2.5.x)中使用swiper(4.3.3),輪播加了autoplay和loop、observer、observeParents等引數還是很詭異的無法迴圈輪播;

那麼可以這樣寫程式碼試試:

this.$api.queryImages().then((resp) => {    if(resp && resp.data.resultCode == "0"){      this.swiperImgs = resp.data.data;      this.$nextTick(() => {  // 下一個UI幀再初始化swiper        this.initSwiper();      });     } })

是的,關鍵就在於上面這個初始化swiper的呼叫了,一般會用v-for迴圈渲染,然後馬上初始化swiper,但是這樣可能導致初始化時v-for還沒渲染完畢,所以可能swiper錯亂, 那麼swiper放在$nextTick下一個UI幀再初始化,保證了v-for已經完成迴圈。

initSwiper() {         if (this.swiper != null) return;         this.swiper = new Swiper('.swiper-container', {           loop: true,           speed: 900,           autoplay: {             delay: 3000, //3秒切換一次             disableOnInteraction: false           },           observer: true,//修改swiper自己或子元素時,自動初始化swiper           observeParents: true,//修改swiper的父元素時,自動初始化swiper             pagination: {             el: '.swiper-pagination',             // dynamicBullets: true,           }         });       }