zoukankan      html  css  js  c++  java
  • 安装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>
  • 相关阅读:
    cf Inverse the Problem (最小生成树+DFS)
    cf Make It Nondeterministic (简单贪心)
    cf Learn from Life (简单贪心)
    hdu 5057 Argestes and Sequence (数状数组+离线处理)
    hdu 5056 Boring count (类似单调队列的做法。。)
    hdu 5055 Bob and math problem (很简单贪心)
    三样东西能让女人幸福一生
    第01课 OpenGL窗口(4)
    爱情要不要吃回头草?(林忆)
    第01课 OpenGL窗口(3)
  • 原文地址:https://www.cnblogs.com/dandanyajin/p/14850392.html
Copyright © 2011-2022 走看看