vue--轮播图案例

2021-07-14  本文已影响0人  海里的沙丁鱼

Vue里如何实现轮播图案例
DOM

css样式不做介绍了,主要是介绍如何在vue中完成js交互

  <div class="banner bannermob">
            <div class="caroufredsel_wrapper" style="display: block; text-align: start; float: none; position: relative; inset: auto; z-index: auto; width: 1680px; height: 500px; margin: 20px auto; overflow: hidden;">
                <ul class="clearfloat" style="text-align: left; float: none; position: absolute; inset: 0px auto auto 0px; margin: 0px; width: 18480px; height: 500px; z-index: auto; opacity: 1;">
                <li class="left banner_Item" v-bind:style="bannerItemStyle"></li>
                </ul>
            </div>

            <div class="bannerPagination ctn" style="display: block;">
                <a  class="selected" v-on:click="bpag(1,$event)" ><span>1</span></a>
                <a  class="" v-on:click="bpag(2,$event)"><span>2</span></a>
                <a  class="" v-on:click="bpag(3,$event)"><span>3</span></a>
                <a  class="" v-on:click="bpag(4,$event)"><span>4</span></a>
                <a  class="" v-on:click="bpag(5,$event)"><span>5</span></a>
            </div>
            <a class="bannerPrev bannerBtn"  style="display: block;"><img src="static/images/bannerPrev.png" v-on:click="bpagPrev()"></a>
            <a class="bannerNext bannerBtn" style="display: block;"><img src="static/images/bannerNext.png" v-on:click="bpagNext()"></a>
        </div>

JS

export default {

    data(){
      return{
          bannerItemStyle:{
              background:"url(static/images/banner1.png) ",
          },
          bannerIndex:1
      }
    },
    methods:{
        bpag:function (i,e){

            $(".bannerPagination a").removeClass("selected");
            var el =e.target
            $(el).addClass("selected");

            this.bannerItemStyle.background="url(static/images/banner"+i+".png) ";

        },
        bpagNext:function (){


            this.bannerIndex = (this.bannerIndex +1 ) % 6

            if(this.bannerIndex == 0){
                this.bannerIndex = 1
            }

            this.bannerItemStyle.background="url(static/images/banner"+this.bannerIndex+".png) ";
        },
        bpagPrev:function (){

            this.bannerIndex = (this.bannerIndex -1 ) % 6
            if(this.bannerIndex == 0){
                this.bannerIndex = 5
            }

            this.bannerItemStyle.background="url(static/images/banner"+this.bannerIndex+".png) ";
        }

    }
}
上一篇 下一篇

猜你喜欢

热点阅读