解決swiper動(dòng)態(tài)數(shù)據(jù)加載在移動(dòng)端下左右滑動(dòng)不好使?

在用H5做移動(dòng)端項(xiàng)目,產(chǎn)品模型需要有個(gè)左右滑動(dòng)輪播圖效果。
使用的時(shí)候遇到了辣手的問題,使用jquery的ajax動(dòng)態(tài)循環(huán)生成當(dāng)?shù)降诙摰臅r(shí)候始終滑動(dòng)不起來,chrome的手機(jī)開發(fā)者模式和真機(jī)模式全都滑動(dòng)不起來!
官方規(guī)范:

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

測(cè)試代碼

<div class="swiper-container">
     <div class="swiper-wrapper">
          <div class="swiper-slide orange-slide swiper-slide-active">
                     ![](../../images/center/ouya/ba01.jpg)
          </div>
          <div class="swiper-slide orange-slide swiper-slide-active">
                     ![](../../images/center/ouya/ba01.jpg)
          </div>
          <div class="swiper-slide">
                     ![](../../images/center/ouya/ba01.jpg)
          </div>
     </div>
          <div class="swiper-pagination swiper-pagination-v"></div>
</div>    

當(dāng)我在測(cè)試的時(shí)候,靜態(tài)復(fù)制n個(gè)塊。用Chrome手機(jī)開發(fā)模式調(diào)試左右滑動(dòng)暢通無阻,排除了循環(huán)出錯(cuò)的問題!再次翻閱官方文檔在初始化增加了2項(xiàng)設(shè)置(紅色文字):

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

但動(dòng)態(tài)加載后Chrome調(diào)試手機(jī)開發(fā)模式可以左右滑動(dòng)了,很順通。于是真機(jī)測(cè)試,用蘋果手機(jī),安卓各項(xiàng)主流手機(jī)依然左右滑動(dòng)不了。再次崩潰~~

于是各種排除問題,終于在pc端+移動(dòng)端完美解決了問題!問題出在初始化的時(shí)候放在html文件了,應(yīng)該放在接口取值后找到swiper-wrapper類后馬上初始化!

$.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">![]( + 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自己或子元素時(shí),自動(dòng)初始化swiper
                    observeParents: true//修改swiper的父元素時(shí),自動(dòng)初始化swiper
                });
            } else {
                showTips(res.msg);
            }
        },
        error: function() {
            showTips('焦點(diǎn)圖未獲取到');
        }
    });

swiper這個(gè)插件壓縮版有53kb分量還是過大,在移動(dòng)端流量如黃金的平臺(tái)下覺得還是太大。如果有更好的解決方案希望大家可以多多指教!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容