最近接触了mui前端框架,要做的需求是做一个可以循环轮播的选项卡,结果查看官方文档对轮播组件居然只是寥寥几笔,连怎么轮播都没说。
没办法只能自己琢磨,最后误打误撞约莫是实现轮播了:
简要html代码:
<div class="mui-slider client-slider">
<div class="tab-title-box">
<div id="sliderSegmentedControl1" class="mui-slider-indicator mui-segmented-control mui-segmented-control-inverted">
<a class="mui-control-item mui-active" href="#item1"><span>选项卡1</span></a>
<a class="mui-control-item" href="#item2"><span>选项卡2</span></a>
<a class="mui-control-item" href="#item3"><span>选项卡3</span></a>
<a class="mui-control-item" href="#item4"><span>选项卡4</span></a>
</div>
</div>
<div id="sliderProgressBar" class="mui-slider-progress-bar" style="width: 20%;"></div>
<div class="mui-slider-group">
<div id="item1" class="mui-slider-item mui-control-content mui-active">
选项卡1内容
</div>
<div id="item2" class="mui-slider-item mui-control-content">
选项卡2内容
</div>
<div id="item3" class="mui-slider-item mui-control-content">
选项卡3内容
</div>
<div id="item4" class="mui-slider-item mui-control-content">
选项卡4内容
</div>
</div>
</div>
js代码:
//轮播图
var gallery = mui('.mui-slider');
gallery.slider({
interval: 6000, //自动轮播周期,若为0则不自动播放,默认为0;
scrollY: true,
scrollX: false,
indicators: true
});
document.getElementsByClassName('client-slider')[0].addEventListener('slide', function(event) {
var length = $('.client-slider .mui-control-item').length - 1
if (event.detail.slideNumber === length){
setTimeout(function(){
mui(".client-slider").slider().gotoItem(0);//返回到第一张图片
},6001) // 很奇怪,间隔时间用6000不行,4000~5000有些值也是直接卡住不动。
}
event.stopPropagation();
});
这个组件还有待继续研究源码去了。单纯看文档压根什么都做不了。