mui的輪播圖片,在默認情況下是無法進行自動輪播的;只有在滑動或者拖動之后才能進行正常輪播;這里需要添加一個定時器,設(shè)定默認開始輪播的時間;
setTimeout(function(){
var gallery = mui('.mui-slider');
gallery.slider({
interval:1800//自動輪播周期,若為0則不自動播放,默認為0;
});
},300)
然而,初級的輪播是圖片數(shù)量固定,但是輪播圖片如果是從后臺取值,且圖片數(shù)量不定的情況下,又該如何輪播呢?有一種解決辦法是用添加數(shù)組的方式,遍歷json內(nèi)圖片的數(shù)量,然后一個一個將圖片添加進數(shù)組進行圖片dome的循環(huán),這種方法,代碼較多而且操作復(fù)雜;
這里提供一個更簡單的方法,vue.js的v-for方法,不僅支持隨機數(shù)量的輪播,而且在后臺返回的json內(nèi)圖片只有一張的情況,則停止輪播,代碼如下;
頁面部分:
<div class="mui-slider ">
<div class="mui-slider-group mui-slider-loop">
<!--支持循環(huán),需要重復(fù)圖片節(jié)點-->
<div class="mui-slider-item mui-slider-item-duplicate" v-bind:class="{dispnone:isImgShow}">
<a @click="goToReceive(items[items.length-1])"></a>
<button type="button" v-text="btnTextLast" @click="goToReceive(items[items.length-1])"></button>
</div>
<div class="mui-slider-item" v-for="item in items">
<a @click="goToReceive(item)"></a>
<button type="button" v-text="item.btnText" @click="goToReceive(item)"></button>
</div>
<!--支持循環(huán),需要重復(fù)圖片節(jié)點-->
<div class="mui-slider-item mui-slider-item-duplicate" v-bind:class="{dispnone:isImgShow}">
<a @click="goToReceive(items[0])"></a>
<button type="button" v-text="btnTextFrist" @click="goToReceive(items[0])"></button>
</div>
</div>
</div>
js部分:
vm.btnTextLast = common.getDict('btnType',vm.items[vm.items.length-1].displayType);
vm.btnTextFrist = common.getDict('btnType',vm.items[0].displayType);
// 圖片數(shù)量為1時,不再輪播
if(vm.items.length == 1){
vm.isImgShow = false;
}else{
vm.imgfrist = vm.items[0].img;
vm.imgLast = vm.items[vm.items.length-1].img;
vm.isImgShow = true;
//獲得slider插件對象
vm.imgCycle();
}
for(var i=0;i<vm.items.length;i++){
vm.items[i].btnText = common.getDict('btnType',vm.items[i].displayType);
}
如此,輪播圖片不僅支持自動輪播,而且支持不固定數(shù)量圖片無縫輪播,更是支持按鈕變換v-text.
其中,vm代表this.函數(shù)imgCycle則是輪播定時器函數(shù)。