在用H5做移動端項目,產品模型需要有個左右滑動輪播圖效果。
使用的時候遇到了辣手的問題,使用jquery的ajax動態(tài)循環(huán)生成當?shù)降诙摰臅r候始終滑動不起來,chrome的手機開發(fā)者模式和真機模式全都滑動不起來!
官方規(guī)范:
<div class="swiper-container" ms-visible="result.status==1">
<div class="swiper-wrapper" >
<!-- =======循環(huán)部分======= -->
<div class="swiper-slide" ms-repeat="result.mediaList">
//此處為一個滑動頁內容
</div>
<!-- ============== -->
</div>
</div>
測試代碼
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide orange-slide swiper-slide-active">

</div>
<div class="swiper-slide orange-slide swiper-slide-active">

</div>
<div class="swiper-slide">

</div>
</div>
<div class="swiper-pagination swiper-pagination-v"></div>
</div>
當我在測試的時候,靜態(tài)復制n個塊。用Chrome手機開發(fā)模式調試左右滑動暢通無阻,排除了循環(huán)出錯的問題!再次翻閱官方文檔在初始化增加了2項設置(紅色文字):
var mySwiper = $('.swiper-container').swiper({
mode: 'horizontal',
pagination: '.swiper-pagination',
loop: true,
observer: true,//修改swiper自己或子元素時,自動初始化swiper
observeParents: true//修改swiper的父元素時,自動初始化swiper
});
但動態(tài)加載后Chrome調試手機開發(fā)模式可以左右滑動了,很順通。于是真機測試,用蘋果手機,安卓各項主流手機依然左右滑動不了。再次崩潰~~
于是各種排除問題,終于在pc端+移動端完美解決了問題!問題出在初始化的時候放在html文件了,應該放在接口取值后找到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"></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('焦點圖未獲取到');
}
});
swiper這個插件壓縮版有53kb分量還是過大,在移動端流量如黃金的平臺下覺得還是太大。如果有更好的解決方案希望大家可以多多指教!