安裝swiper插件的坑(vue)


!!!!!!一定要注意版本,不同版本寫法不兼容(這個問題在我剛開始安裝使用時坑死我了)

直接 npm i swiper  下載的是版本6,不建議,據聽說是vue3使用的,反正我沒使用成功。

版本5,我沒使用不清楚

更多的是使用版本4  (我使用的是  "swiper": "^4.5.1",

也可以用版本3,就是版本3中沒有  事件  (比如點擊或者回調)

還有個vue中使用的    "vue-awesome-swiper": "^3.1.3",

使用過程中遇到和swiper有關的報錯,解決不了的,刪掉node_modules文件,刪掉package-lock.json文件,重新下依賴。

 

先說版本4:  

文檔:https://www.swiper.com.cn/api/grid/24.html
<template>
    <div class="false-open-line-container">
                            <!-- 輪播圖 -->
                            <div  class="swiper-container" ref="videoSwiper">
                                <div  class="swiper-wrapper" id="swiper">
                                    <div  class="swiper-slide" v-for="(item, index) in img" :key="index">
                                        <div width="310" height="200">
                                            swiper+{{index}}
                                        </div> 
                                    </div>
                                </div>
                                <!-- 左右按鈕 -->
                                <div class="swiper-button-prev"></div>
                                <div class="swiper-button-next"></div>
                            </div>
    </div>
</template>
<script>
import 'swiper/dist/css/swiper.css'
import Swiper from 'swiper' 

export default {
    name: "stationCenterImg",
    data() {
        return {
             img: [
                {
                    videoDevName: "辦公室測試機器1",
                    videoShowUrl: require("@/assets/video/video01.mp4"),
                    videoCover:require("@/assets/videoCover/video01.png")
                },
                {
                    videoDevName: "辦公室測試機器2",
                    videoShowUrl: require("@/assets/video/video02.mp4"),
                    videoCover:require("@/assets/videoCover/video02.png")
                },
                {
                    videoDevName: "辦公室測試機器3",
                    videoShowUrl: require("@/assets/video/video03.mp4"),
                    videoCover:require("@/assets/videoCover/video03.png")
                },
                {
                    videoDevName: "辦公室測試機器4",
                    videoShowUrl: require("@/assets/video/video04.mp4"),
                    videoCover:require("@/assets/videoCover/video01.png")
                },
                {
                    videoDevName: "辦公室測試機器5",
                    videoShowUrl: require("@/assets/video/video05.mp4"),
                    videoCover:require("@/assets/videoCover/video05.png")
                },
                {
                    videoDevName: "辦公室測試機器6",
                    videoShowUrl: require("@/assets/video/video06.mp4"),
                    videoCover:require("@/assets/videoCover/video06.png")
                },
            ],
        };
    },
    components: { Swiper},  
    mounted(){
        this.initVideo()
    },
    computed: {
        videoSwiper() {
            // videoSwiper 是要綁定到標簽中的ref屬性
            return this.$refs.videoSwiper.swiper
        },
    },
    methods: {
       //  初始化攝像頭視頻
        initVideo() {
           const _self = this
            try {
      // 初始化swiper
                const _self = this
                new Swiper('.swiper-container', {
                    autoplay:true,     // 自動輪播
                    loop:true,         //  環路
                    slidesPerView:3,   // 顯示3個
                    on:{
                        // 回調
                        init:function(swiper){
                            _self.addEventClickToVideo()
                        }
                    },   
                    // 左右按鈕
                    navigation: {
                        nextEl: '.swiper-button-next',
                        prevEl: '.swiper-button-prev',
                    },
                
                })
            } catch (error) {
                
            }
          
        },
        // 進入視頻輪播圖 停止輪播
        onEnter() {
            this.videoSwiper.autoplay.stop()
        },
        // 離開視頻輪播圖 繼續輪播
        onLeave() {
            this.videoSwiper.autoplay.start()
        },
</script>
 

 

 

然后是   "vue-awesome-swiper": "^3.1.3",

<template>
    <div class="false-open-line-container">
                            <!-- 輪播圖 -->
                            <swiper class="swiper" :options="swiperOption" style="margin-top:20px" ref="videoSwiper">
                                <swiper-slide v-for="(item, index) in videos" :key="index">
                                        <div width="310" height="200">
                                            swiper+{{index}}
                                        </div> 
                                </swiper-slide>
                                <!--  如果需要導航按鈕 -->
                                <div class="swiper-button-prev" slot="button-prev"></div>
                                <div class="swiper-button-next" slot="button-next"></div>
                            </swiper>
    </div>
</template>
<script>
import 'swiper/dist/css/swiper.css' import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
    name: "stationCenterImg",
    data() {
        return {
            // 輪播參數
 swiperOption: { slidesPerView: 3, spaceBetween: 12, autoplay: { delay: 1500, stopOnLastSlide: false, disableOnInteraction: false   //用戶操作之后是否停止自動輪播
                },// 可選選項,自動滑動
                loop:true, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev' } },
             videos: [
                {
                    videoDevName: "辦公室測試機器1",
                    videoShowUrl: require("@/assets/video/video01.mp4"),
                    videoCover:require("@/assets/videoCover/video01.png")
                },
                {
                    videoDevName: "辦公室測試機器2",
                    videoShowUrl: require("@/assets/video/video02.mp4"),
                    videoCover:require("@/assets/videoCover/video02.png")
                },
                {
                    videoDevName: "辦公室測試機器3",
                    videoShowUrl: require("@/assets/video/video03.mp4"),
                    videoCover:require("@/assets/videoCover/video03.png")
                },
                {
                    videoDevName: "辦公室測試機器4",
                    videoShowUrl: require("@/assets/video/video04.mp4"),
                    videoCover:require("@/assets/videoCover/video01.png")
                },
                {
                    videoDevName: "辦公室測試機器5",
                    videoShowUrl: require("@/assets/video/video05.mp4"),
                    videoCover:require("@/assets/videoCover/video05.png")
                },
                {
                    videoDevName: "辦公室測試機器6",
                    videoShowUrl: require("@/assets/video/video06.mp4"),
                    videoCover:require("@/assets/videoCover/video06.png")
                },
            ],
        };
    },
    components: { eventData, chartTitle, swiper,swiperSlide},
    watch: {},
    mounted(){},
    computed: {
        videoSwiper() {
            // videoSwiper 是要綁定到標簽中的ref屬性
            return this.$refs.videoSwiper.swiper
        },
        },
    methods: {// 進入視頻輪播圖 停止輪播
        onEnter() {
            this.videoSwiper.autoplay.stop()
        },
        // 離開視頻輪播圖 繼續輪播
        onLeave() {
            this.videoSwiper.autoplay.start()
        }
    },
};
</script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM