首頁 > 軟體

vue實現輪播圖片

2022-07-14 22:01:38

本文範例為大家分享了vue實現輪播圖片的具體程式碼,供大家參考,具體內容如下

1、效果圖

2、案例

<template>
       <section class="body">
           <section class="wrap">
               <swiper :options="swiperOption" class="swiper-wrap"  ref="mySwiper" v-if="banner.length!=0">
                   <swiper-slide v-for="(item,index) in banner" :key="index" >
                       //點選圖片跳到哪裡,這裡跳到home頁面 item舉例:{img:http://www.***.com/home/images/index_img02.png,url:/home}
                       <img :src="item.img" alt="" @click="skip_out_page(item.url)" />
                   </swiper-slide>
                   <!-- 常見的小圓點 -->
                   <div class="swiper-pagination"  v-for="(item,index) in banner" :key="index" slot="pagination" ></div>
               </swiper>
           </section>
       </section>
</template>
<script>
    export default {
        data() {
            const that = this;
            return {
                imgIndex: 1,
                swiperOption: {
                    //是一個元件自有屬性,如果notNextTick設定為true,元件則不會通過NextTick來範例化swiper,也就意味著你可以在第一時間獲取到swiper物件,假如你需要剛載入遍使用獲取swiper物件來做什麼事,那麼這個屬性一定要是true
                    notNextTick: true,
                    //迴圈,而不是每次都突然回到第一個
                    loop: true,
                    //設定初始化時slide的索引,載入頁面時顯示的第幾個,從0開始
                    initialSlide: 0,
                    //自動播放
                    autoplay: {
                        /*切換輪播圖片的時間,即上次切換成功後到再次需要切換的時間*/
                        delay: 1500,
                        stopOnLastSlide: false,
                        /* 觸控滑動後是否繼續輪播 false觸控後不再點選繼續輪播,true觸控後不再點選不輪播,停在最後一次頁面*/
                        disableOnInteraction: false
                    },
                    //滑動速度,時間單位,越小越快,與上面 delay 區別,speed是完成切換所需時間,delay是切換成功後停留多長時間再切換
                    speed: 800,
                    //滑動方向
                    direction: "horizontal",
                    //小手掌抓取滑動
                    grabCursor: true,
                    on: {
                        //滑動之後回撥函數
                        slideChangeTransitionStart: function() {
                            /* realIndex為捲動到當前的slide索引值 */
                            that.imgIndex= this.realIndex - 1;
                        },
                    },
                    //分頁器設定
                    pagination: {
                        el: ".swiper-pagination",
                        clickable: true,
                        type: "bullets"
                    }
                },
                banner: []
            }
        },
        methods: {
            skip_out_page(v) {
                window.location.href = v
            },
            get_data() {
                this.$http.get('test').then(res => {
                    if(res.data.code == '0000'){
                        this.banner = res.data.img_info
                    }
                });
            }
        },
        mounted() {
            this.get_data()
        }
    }
</script>
<style lang="scss">
    .swiper-wrap{
        width: 100%;
        height: 210px;
        background-color: #fff;
    }
    .swiper-pagination{
        background: #fff;
    }
    .swiper-pagination-bullet{
        background: #ccc;
        width: 10px;
        height: 10px;
        opacity: 1;
    }
    .swiper-pagination-bullet-active{
        background: #00C293;
    }
</style>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com