vue中使用swiper失效問(wèn)題及解決
vue使用swiper失效
問(wèn)題描述
需求是 要在一個(gè)循環(huán)的列表中第一組數(shù)據(jù)后添加一個(gè)輪播,效果如下
由于所有循環(huán)的數(shù)據(jù)都是一個(gè)接口返回,并在一個(gè)數(shù)組中。
由以下代碼實(shí)現(xiàn)
<div v-for="(item, index) in videoList" :key="index"> <div class="index_list01"> <div class="index_list"> <div class="index_list1"> <div class="index_list1_1">{{item.title}}</div> <div class="index_list1_2" @click="gotoPage('/mine/search')">查看更多 ></div> </div> <div class="index_list2"> // 此處無(wú)關(guān)代碼省略 </div> </div> </div> <div v-if="index == 0" class="advert"> <div class="banner"> <div class="swiper-container swiper2"> <div class="swiper-wrapper"> <div v-for="(item, index) in advertList" :key="item.id || index" class="swiper-slide"><img :src="item.picUrl"/></div> </div> <div class="swiper-pagination"></div> </div> </div> </div> </div>
感覺(jué)上沒(méi)什么問(wèn)題,到瀏覽器里發(fā)現(xiàn),其他輪播都可以滑動(dòng),唯獨(dú)這個(gè)輪播不行。
排查過(guò)后發(fā)現(xiàn),輪播樣式生效了,但是swiper自動(dòng)添加的class沒(méi)加上,并且不可滑動(dòng),也就是說(shuō) swiper的js部分沒(méi)生效
那就是初始化swiper的問(wèn)題了。我是直接在mounted生命周期里初始化的swiper,問(wèn)題應(yīng)該在這里,swiper的初始化在異步加載的數(shù)據(jù)渲染之前了。
問(wèn)題解決
// data中添加swiper狀態(tài) data(){ return { swiper: '' } }
猜測(cè)是swiper的初始化的順序?qū)е碌?,那就把初始化的操作延后試一?/p>
// 在methods里定義初始化的方法 initSwiper(){ if(this.swiper != ''){return} this.swiper = new Swiper('.swiper-container', { loop: true, }) }
getInfo() { this.$api.index.getIndexInfo().then(res => { let {indexCenterBannerList, classifyListCollect} = res.data let videoKeys = Object.keys(classifyListCollect) this.advertList = indexCenterBannerList this.videoList = videoKeys.map(item =>{ return { title: item, list: classifyListCollect[item] } }) // 將初始化方法放在數(shù)據(jù)請(qǐng)求后的下一個(gè)dom更新后 this.$nextTick(()=>{ this.initSwiper() }) }) }
調(diào)整完后,果然swiper正常了。并且之前其他swiper的loop失效的問(wèn)題也解決了
vue2+swiper踩坑記 effect等參數(shù)無(wú)效
vue2使用swiper需要安裝vue-awesome-swiper,然后坑來(lái)了
使用最新4.版本的vue-awesome-swiper,effect等參數(shù)無(wú)效
解決: 降級(jí)到3.1.3
注意: 4.版本引入swiper, swiperSlide是大寫(xiě) 3.1.3是小寫(xiě)
4.版本獲取實(shí)例this.refs.mySwiper.swiperInstance3.版本獲取實(shí)例this.refs.mySwiper.swiper
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何在Vue3+TS的項(xiàng)目中使用NProgress進(jìn)度條
本文主要介紹了詳解如何在Vue3+TS的項(xiàng)目中使用NProgress進(jìn)度條,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06vue動(dòng)態(tài)修改頁(yè)面title的兩種方法
本文主要介紹了vue動(dòng)態(tài)修改頁(yè)面title的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Vuex給state中的對(duì)象新添加屬性遇到的問(wèn)題及解決
這篇文章主要介紹了Vuex給state中的對(duì)象新添加屬性遇到的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01vue 全選與反選的實(shí)現(xiàn)方法(無(wú)Bug 新手看過(guò)來(lái))
下面小編就為大家分享一篇vue 全選與反選的實(shí)現(xiàn)方法(無(wú)Bug 新手看過(guò)來(lái)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02在vue中實(shí)現(xiàn)點(diǎn)擊選擇框阻止彈出層消失的方法
今天小編就為大家分享一篇在vue中實(shí)現(xiàn)點(diǎn)擊選擇框阻止彈出層消失的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09