swiper在angularjs中使用循環輪播失效的解決方法

bug描述:我在anjularjs 中使用了swiper輪播圖,經過動態獲取到數據插入swiper-slide中,我在swiper初始化中設置了loop(循環),可是在出現了一點小問題,swiper會失效,劃不動,當我設置固定的數據經過ng-src 插入到swiper-silde中,會正常輪播,可是第一張圖會出現空白。經過查詢了資料,發現swiper和angularjs執行的機制是不一樣的,swiper的機制是:初始化的時候自動掃描swiper-wrapper類下有多少個swiper-slide類塊,則容許滑動多少個塊。 而在angular始終在swiper初始化以後定義,swiper則沒法正確scan有多少個slide(實際上找到一個待循環模板),因此劃不動。html

前端精品教程:百度網盤下載前端

我在網上搜了一點資料不少人都是經過添加兩個屬性就解決了,但個人仍是不行,如下爲插入的屬性。angularjs

?
1
2
observer: true , //修改swiper本身或子元素時,自動初始化swiper
observeParents: true , //修改swiper的父元素時,自動初始化swiper12

我經過在link中初始化swiper中添加延時計時器,能夠解決,儘管我延遲的時間設置爲0,可是正常的效果出現了,我也不知道什麼問題,若是有人知道能夠解答一下。app

如下爲個人代碼,html代碼以下ide

?
1
2
3
< div class = "swiper-slide" ng-repeat = "item in arr" >
  < img ng-src = "img/{{item}}" alt = "" />
</ div >

指令中的代碼以下oop

前端精品教程:百度網盤下載spa

?
1
2
3
4
5
6
7
8
9
10
11
12
13
link: function (){
setTimeout( function (){
var swiper= new Swiper( ".swiper3" ,{
pagination: '.swiper-pagination3' ,
paginationClickable: true ,
centeredSlides: true ,
autoplay: 2000,
loop : true ,
autoplayDisableOnInteraction: false ,
 
  });
},0);
}
相關文章
相關標籤/搜索