这段时间在公司实习做前端,感觉前端没学习到很多前端框架,接口那些都是写好的,只需要调用就好,感觉没什么好记的,唯一觉得有必要记的就是swiper轮播了,在前端做网站的时候经常用到swiper做公告,图片的轮播效果。

一:要使用swiper首先要引入对应的swiper.min.css和swiper.min.js文件,这个直接进swiper中文网下载就好,里面也有很多很好的实例可以学习。

二:实例化swiper,以一个简单的实例化轮播举例,代码如下

var bannerSwiper = new Swiper('.banner-swiper', {//banner-swiper为取的别名
            autoplay: true,//自动轮播
            autoplay: {
                disableOnInteraction: false,//用户操作后不禁止自动轮播
                delay: 4000, //4秒切换一次
            },
            centeredSlides: true,//活动块会居中,false为默认在左
            loop: true, // 循环模式选项
            // 如果需要分页器
            pagination: {
                el: '.banner-pagination',//分页器名称
                clickable: true,//允许点击分页器操控轮播
            }
        });

放一张 html代码搭配看的明白些

简单写了个说明,希望大家能看懂,不懂没关系,简单描述一下:

注意:1.swiper必须要有的,swiper-container,swiper-wrapper,swiper-slide。(这三个相当于声明吧,swiper-container用于包含整个swiper的所有东西,所以放在最外层,swiper-wrapper为轮播内容的父级容器,swiper-slide为轮播内容的声明,每个需要轮播的内容都要加上这个。这都是我个人理解的,说的可能不对)

   2.如果需要分页器,必要要加上swiper-pagination,需要滚动条必须要swiper-scrollbar。分页器和滚动条的样式都可以自己设置,这个肯定都知道。

     3.前后切换按钮,swiper-button-prev和swiper-button-next。

     4.一个页面中引用多个Swiper可以给每个Swiper加上ID或Class区分,要保留默认的类名swiper-container。

   5.最好是给swiper-wrapper设置一个宽度和高度,我遇到过好几次因为没有设置宽度和高度所以导致的swiper轮播内容出现偏移,不在屏幕可视范围内。

补充一下,分页器可以自定义,自定义分页器代码如下:

 

//彩票轮播
    var lotterySwiper = new Swiper('.lottery-swiper', {
        direction: 'vertical',
        centeredSlides: true,
        autoplay: true,
        autoplay: {
            disableOnInteraction: false,
            delay: 4000,
        },
        loop: true, // 循环模式选项
        // 如果需要分页器
        pagination: {
            el: '.lottery-pagination',//这个用的是分页器的别名
            clickable: true,
            //这里是自定义分页器的代码
            renderBullet: function (index, className) {
                return '<div data-v-62a6580a="" class="' + className + ' lotteryUl_dian"><i data-v-62a6580a=""></i></div>';
            },
        }, // 如果需要前进后退按钮
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        }
    });

注意,自定义分页器的方法中className必须要,我刚使用的时候,没有用className,自定义分页器就只是摆设,不能操作。

四:总结一下我所知道的实例化swiper时可以设置的几个参数,以及分别是做什么的

initialSlide:设定初始化时slide的索引。

direction:Slides的滑动方向,可设置水平(horizontal)或垂直(vertical)。

speed:切换速度,即slider自动滑动开始到结束的时间(单位ms),也是触摸滑动时释放至贴合的时间。

grabcursor:设置为true时,鼠标覆盖Swiper时指针会变成手掌形状,拖动时指针会变成抓手形状。(根据浏览器形状有所不同)

width:强制Swiper的宽度(px),当你的Swiper在隐藏状态下初始化时用得上。这个参数会使自适应失效。可设置为undefined使这个参数无效。

heigt:强制Swiper的高度(px),当你的Swiper在隐藏状态下初始化时且切换方向为垂直才用得上。这个参数会使自适应失效。

roundLengths:如果设置为true,则将slide的宽和高取整(四舍五入),以防止某些分辨率的屏幕上文字或边界(border)模糊。

autoHeight:自动高度。设置为true时,wrapper和container会随着当前slide的高度而发生变化。

uniqueNavElements:默认为true时,仅本swiper的container内的分页器有效,设置为false后,container以外的分页器也生效了。

watchOverflow:当没有足够的slide切换时,例如只有1个slide,swiper会失效且隐藏导航等。默认不开启这个功能。loop模式无效,因为会复制slide。

init:当你创建一个Swiper实例时是否立即初始化。如果禁止了,可以稍后使用mySwiper.init()来初始化。

preloadImages:默认为true,Swiper会强制加载所有图片。

updateOnImagesReady:当所有的内嵌图像(img标签)加载完成后Swiper会重新初始化。使用此选项需要先开启preloadImages: true。

centeredSlides:默认active slide居左,设置为true后居中。

slidesPerView:可以设置为数字(可为小数,小数不可loop),或者 'auto'则自动根据slides的宽度来设定数量。

slidesPerGroup:在carousel mode下定义slides的数量多少为一组

spaceBetween:在slide之间设置距离(单位px)。

slidesOffsetBefore:设定slide与左边框的预设偏移量(单位px)。

...

好吧,其实这些都是在swiper中文网复制的api文档中我觉得常用的,但是太多了,懒得复制了。

写的特别基础简单,因为我也只接触了皮毛,连事件都没用过,所以有说的不对的地方望指正。

posted on 2019-08-30 16:23  爱写随记的代码搬运工  阅读(563)  评论(0编辑  收藏  举报