mui轮播图片设定自动轮播

2017-07-11  本文已影响0人  故林青衫
   mui的轮播图片,在默认情况下是无法进行自动轮播的;只有在滑动或者拖动之后才能进行正常轮播;这里需要添加一个定时器,设定默认开始轮播的时间;
setTimeout(function(){
    var gallery = mui('.mui-slider');
    gallery.slider({
         interval:1800//自动轮播周期,若为0则不自动播放,默认为0;
    });
},300)
   然而,初级的轮播是图片数量固定,但是轮播图片如果是从后台取值,且图片数量不定的情况下,又该如何轮播呢?有一种解决办法是用添加数组的方式,遍历json内图片的数量,然后一个一个将图片添加进数组进行图片dome的循环,这种方法,代码较多而且操作复杂;
   这里提供一个更简单的方法,vue.js的v-for方法,不仅支持随机数量的轮播,而且在后台返回的json内图片只有一张的情况,则停止轮播,代码如下;

页面部分:

              <div class="mui-slider ">
          <div class="mui-slider-group mui-slider-loop">
            <!--支持循环,需要重复图片节点-->
            <div class="mui-slider-item mui-slider-item-duplicate" v-bind:class="{dispnone:isImgShow}">
                <a @click="goToReceive(items[items.length-1])">![](imgLast)</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)">![](item.img)</a>
                <button type="button" v-text="item.btnText"  @click="goToReceive(item)"></button>
            </div>
            <!--支持循环,需要重复图片节点-->
            <div class="mui-slider-item mui-slider-item-duplicate" v-bind:class="{dispnone:isImgShow}">
                <a @click="goToReceive(items[0])">![](imgfrist)</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);
                        // 图片数量为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);
                        }
   如此,轮播图片不仅支持自动轮播,而且支持不固定数量图片无缝轮播,更是支持按钮变换v-text.
   其中,vm代表this.函数imgCycle则是轮播定时器函数。
上一篇 下一篇

猜你喜欢

热点阅读