解決swiper動態數據加載在移動端下左右滑動很差使?

Swiper 是目前較爲流行的移動端觸摸滑動插件,由於其簡單好用易上手,受到不少前端開發者的歡迎!因而立刻查看官方幫助文檔開始學習。javascript

今天在我使用的時候遇到了辣手的問題,使用jquery的ajax動態循環生成當到第二頁的時候始終滑動不起來,chrome的手機開發者模式和真機模式全都滑動不起來!html

官方規範:前端

<div class="swiper-container" ms-visible="result.status==1">
<div class="swiper-wrapper" >
    <!-- =======循環部分======= -->
    <div class="swiper-slide" ms-repeat="result.mediaList">
      //此處爲一個滑動頁內容
    </div>    
    <!-- ============== -->
</div>
</div>

測試代碼java

<div class="swiper-container">
     <div class="swiper-wrapper">
          <div class="swiper-slide orange-slide swiper-slide-active">
                     <img src="../../images/center/ouya/ba01.jpg">
          </div>
          <div class="swiper-slide orange-slide swiper-slide-active">
                     <img src="../../images/center/ouya/ba01.jpg">
          </div>
          <div class="swiper-slide">
                     <img src="../../images/center/ouya/ba01.jpg">
          </div>
     </div>
          <div class="swiper-pagination swiper-pagination-v"></div>
</div>

當我在測試的時候,靜態複製n個塊。用Chrome手機開發模式調試左右滑動暢通無阻,排除了循環出錯的問題!再次翻閱官方文檔在初始化增長了2項設置(紅色文字):jquery

var mySwiper = $('.swiper-container').swiper({
                    mode: 'horizontal',
                    pagination: '.swiper-pagination',
                    loop: true,
                    observer: true,//修改swiper本身或子元素時,自動初始化swiper
                    observeParents: true//修改swiper的父元素時,自動初始化swiper
                });

但動態加載後Chrome調試手機開發模式能夠左右滑動了,很順通。因而真機測試,用蘋果手機,安卓各項主流手機依然左右滑動不了。再次崩潰~~ajax

因而各類排除問題,終於在pc端+移動端完美解決了問題!問題出在初始化的時候放在html文件了,應該放在接口取值後找到swiper-wrapper類後立刻初始化!chrome

$.ajax({
        url: "memc/center/ouya/getChainImage",
        type: "get",
        dataType: "json",
        timeout: "30000",
        beforeSend: function() {
            $(".swiper-wrapper").html("");
        },
        success: function(res) {
            if (res.resCode == 1) {
                var ht = '';
                $.each(res.data, function(i, v) {
                    ht += '<div class="swiper-slide"><img src=' + v.optIcon + '></div>';
                });
                $(".swiper-container").find('.swiper-wrapper').html(ht);
                var mySwiper = $('.swiper-container').swiper({
                    mode: 'horizontal',
                    pagination: '.swiper-pagination',
                    loop: true,
                    observer: true,//修改swiper本身或子元素時,自動初始化swiper
                    observeParents: true//修改swiper的父元素時,自動初始化swiper
                });
            } else {
                showTips(res.msg);
            }
        },
        error: function() {
            showTips('焦點圖未獲取到');
        }
    });

題外話:json

swiper這個插件壓縮版有53kb份量仍是過大,在移動端流量如黃金的平臺下以爲仍是太大。若是有更好的解決方案但願你們能夠多多指教!app

相關文章
相關標籤/搜索