
中文网:https://www.swiper.com.cn/
GitHub:https://github.com/nolimits4web/swiper
swiper是什么?
swiper 是一款轻量级的轮播图插件,不仅支持pc端更是为移动端而生,用它可以快速地做出一个轮播图,或者扩展使其做出复杂的轮播效果。
基本用法
swiper 使用需要两个文件,一个是swiper.css ,里面规定了一些在这个滑动轮播插件中常用的样式,当然如果你愿意的话可以自己定义样式
另外一个是swiper.js 这个是插件的主体部分。
在页面中引入这两个文件之后首先要写基本的html结构
下面所有的使用方式基于swiper 4.x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> <div class="swiper-slide">Slide 4</div> <div class="swiper-slide">Slide 5</div> <div class="swiper-slide">Slide 6</div> <div class="swiper-slide">Slide 7</div> <div class="swiper-slide">Slide 8</div> <div class="swiper-slide">Slide 9</div> <div class="swiper-slide">Slide 10</div> </div> </div> |
类名为
1 2 3 | <script> var swiper = new Swiper('.swiper-container'); </script> |
这样就能生成一个默认的轮播图,可以用鼠标或者触摸屏来进行左右的滑动
添加分页与导航
大部分的轮播图都有分页,导航,可以让用户看到目前是在什么位置,并且让用户知道这是一个可以交互的部分,添加分页的方式也很简单,只需要在初始化的时候添加选项指定一下分页的元素就行
html 部分,在swiper-container 下面添加下一个与上一个按钮
1 2 3 4 5 | <div class="swiper-container"> <div class="swiper-wrapper">...</div> <div class="swiper-button-next"></div> <div class="swiper-button-prev"></div> </div> |
在这里
1 2 3 4 5 6 | var swiper = new Swiper('.swiper-container',{ navigation:{ nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', } }); |
在初始化函数中添加按钮元素。这样就能生成一个有导航按钮的轮播图了

siwper导航
添加分页的方式和导航按钮非常类似
html:
1 2 3 4 5 6 7 8 9 10 | <div class="swiper-container"> <div class="swiper-wrapper"> ... </div> <!-- 分页 --> <div class="swiper-pagination"></div> <!--导航按钮--> <div class="swiper-button-next"></div> <div class="swiper-button-prev"></div> </div> |
在初始化的时候加入分页元素
js:
1 2 3 4 5 6 7 8 9 | var swiper = new Swiper('.swiper-container', { pagination: { el: '.swiper-pagination', }, navigation:{ nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', } }); |
这样就能生成有分页又有导航的轮播图了

循环与自动轮播:
js:
在初始化的时候加入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var swiper = new Swiper('.swiper-container', { //分页 pagination: { el: '.swiper-pagination', }, //导航按钮 navigation:{ nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, //自动轮播 autoplay: { delay: 2500,//时间 毫秒 disableOnInteraction: false,//用户操作之后是否停止自动轮播默认true }, loop:true,//循环 最后面一个往后面滑动会滑到第一个 }); |
其他常用属性
分页用进度条代替
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var swiper = new Swiper('.swiper-container', { pagination: { el: '.swiper-pagination', type: 'progressbar',//将分页的类型改为进度条就行 }, navigation:{ nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, autoplay: { delay: 2500, disableOnInteraction: false, }, }); |