亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

AngularJS 中使用Swiper制作滾動(dòng)圖不能滑動(dòng)

原創(chuàng) 2016-11-17 12:40:09 719
摘要:Swiper是目前較為流行的移動(dòng)端觸摸滑動(dòng)插件,因?yàn)槠浜?jiǎn)單好用易上手,受到很多前端開(kāi)發(fā)者的歡迎。今天在使用Swiper的時(shí)候遇到這個(gè)問(wèn)題:使用angularjs動(dòng)態(tài)循環(huán)生成swiper-slide類,在swiper-wrapper里生成6個(gè)以上的滑動(dòng)頁(yè),可是就是劃不到第二頁(yè),嘗試將longSwipesRatio的值修改到最小,仍然不起作用。<div class="swip

Swiper是目前較為流行的移動(dòng)端觸摸滑動(dòng)插件,因?yàn)槠浜?jiǎn)單好用易上手,受到很多前端開(kāi)發(fā)者的歡迎。

今天在使用Swiper的時(shí)候遇到這個(gè)問(wèn)題:

使用angularjs動(dòng)態(tài)循環(huán)生成swiper-slide類,在swiper-wrapper里生成6個(gè)以上的滑動(dòng)頁(yè),可是就是劃不到第二頁(yè),嘗試將longSwipesRatio的值修改到最小,仍然不起作用。

<div class="swiper-wrapper" >
     <!-- =======循環(huán)部分======= -->
      <div class="swiper-slide" ng-repeat="result in mediaList">
         //此處為一個(gè)滑動(dòng)頁(yè)內(nèi)容      </div>    
      <!-- ============== --></div></div>

在測(cè)試時(shí)發(fā)現(xiàn),手動(dòng)復(fù)制n個(gè)循環(huán)部分,則可以滑動(dòng)n個(gè)塊;手動(dòng)調(diào)節(jié)窗口大小,使頁(yè)面文檔發(fā)生改變(動(dòng)態(tài)響應(yīng))后,可以正?;瑒?dòng)。

于是猜測(cè)swiper的機(jī)制是:初始化的時(shí)候自動(dòng)掃描swiper-wrapper類下有多少個(gè)swiper-slide類塊,則允許滑動(dòng)多少個(gè)塊。 而在angular始終在swiper初始化之后定義,swiper則無(wú)法正確scan有多少個(gè)slide(實(shí)際上找到一個(gè)待循環(huán)模板),所以劃不動(dòng)。

找到原因后,只須對(duì)癥下藥。 在查閱Swiper的API時(shí)發(fā)現(xiàn),有這樣兩個(gè)參數(shù):observer和observeParents,前者啟動(dòng)動(dòng)態(tài)檢查器,當(dāng)改變swiper的樣式(例如隱藏/顯示)或者修改swiper的子元素時(shí),自動(dòng)初始化swiper。后者原理和前者一樣,只是將observe應(yīng)用于Swiper的父元素。兩者默認(rèn)值都為false。 所以在原來(lái)的swiper初始化代碼中加上這兩行即可。

var mySwiper = new Swiper('.swiper-container',{
pagination : '.swiper-pagination',
    paginationClickable: true,
    longSwipesRatio: 0.3,
    touchRatio:1,
    observer:true,//修改swiper自己或子元素時(shí),自動(dòng)初始化swiper
    observeParents:true,//修改swiper的父元素時(shí),自動(dòng)初始化swiper})


發(fā)佈手記

熱門詞條