swiper插件的一些坑

最近正在做一个PC端和移动端的项目 正好用到了swiper 今天给大家拿来讲讲

swiper的官网http://www.swiper.com.cn/ 博主用的是4.0的版本 如果大家用的是3.0的版本可以将我列的api到官网3.0的去搜索相应的使用

在官网上下载了swiper包后解压到你文件夹中  需要用到的就2个文件 解压后进入目录dist文件夹 将swiper.min.js和swiper.min.css2个文件放到你的项目文件夹中 这里我用的是压缩后的 如果大家想看源码的可以使用.css文件

我这里都是用的4.0的版本 如果是3.0的可以将我下面这些api和属性到官网的3.0中搜索相应的使用

以上准备工作完成后下面开始使用------------

1.将swiper.min.js和swiper.min.css2个文件引入到你的功能模块中

2.在swiper文件夹中的demo中找到你要的效果 将代码拷贝过去

3.如果不懂怎么弄的 可以直接初始化一个对象

 <div class="swiper-container">
                <div class="swiper-wrapper">
                    <div class="swiper-slide swiper-no-swiping">
                        <img src="" />
                    </div>
                    <div class="swiper-slide swiper-no-swiping">
                        <img src="" />
                    </div>
                    <div class="swiper-slide swiper-no-swiping">
                        <img src="" />
                    </div>
                    <div class="swiper-slide swiper-no-swiping">
                        <img src="" />
                    </div>
                    <div class="swiper-slide swiper-no-swiping">
                        <img src="" />
                    </div>
                    <div class="swiper-slide swiper-no-swiping">
                        <img src="" />
                    </div>
                </div>
                <!-- Add Arrows -->
                <!-- <div class="swiper-button-next"></div>
                <div class="swiper-button-prev"></div> -->
            </div>
.swiper-slide {
    text-align: center;
    font-size: 18px;
    background: #fff;
    /* Center slide text vertically */
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center;
}

.swiper-container img {
    width: 100%;
}
var swiper = new Swiper('.swiper-container', {
            navigation: {
                nextEl: '.swiper-button-next',   
                prevEl: '.swiper-button-prev',
            }, //开启左右轮播
            speed: 500, //设置轮播时长 可以不设置 会有个默认值
            autoplay: true,   //开启自动轮播
            autoplay: {
                disableOnInteraction: false,  //点击后继续轮播(这个很重要)
                delay: 1000,                       //自动轮播的每次的时间 可以不设置 会有个默认值
            },
            loop: true,                              //开启循环轮播
        });

这里有个坑就是

disableOnInteraction属性  如果不设置这个属性为false 那么用户在操作后轮播就会禁止 这个属性的默认值是true 所以要设置成false

还有个坑就是当你在做一些tab切换的时候 如果是设置的自动轮播那么切换后他也会停止 不知道什么鬼 很多人说设置这2个属性就行 我弄了半天也不行

var swiper = new Swiper('.swiper-container', {
            observer:true,                                        
            observeParents:true,
            //就是上面这2个属性
            navigation: {
                nextEl: '.swiper-button-next',
                prevEl: '.swiper-button-prev',
            },
            speed: 500,
            autoplay: true,
            autoplay: {
                disableOnInteraction: false,
                delay: 1000,
            },
            loop: true,
        });

大家可以先尝试下 写个tab切换然后设置上面这2个属性 

我使用上面的这2个是没效果的 我的做法就是当他切换的时候我调用这个方法:

swiper.autoplay.start();

然后在切换回来的在调用这个方法:

swiper.autoplay.start();

用这2个无论你是隐藏还是切换 他都会继续跑

上面是一个很常见的PC端轮播

还有个移动端的等会再更新

以上API都是用的4.0的版本 如果是3.0的可以将我这些api和属性到官网的3.0中搜索相应的使用

posted @ 2018-05-30 15:34  谢创宏  阅读(4856)  评论(2编辑  收藏  举报