swiper是一款功能强大、开源、免费的的前端轮播图插件。而且面向手机平板等移动终端(更多介绍可以去官网进行查看)。
最近做项目时用到了这个插件,官网的文档看的我很难受!
首先这个插件和其他的插件一样要引入文件,不同Swiper版本用到的文件名略有不同。我下载的版本是swiper-6.4.15版本里面有一堆奇奇怪怪的文件包含了在里面。我们在package文件夹下找到下面这四个文件放入你的项目里就可以了,
最后我们导入这两个文件就可以使用了
<link rel="stylesheet" href="css/swiper-bundle.min.css">
<script src="./js/swiper-bundle.min.js">script>
1.swiper-container最外层的div是一个容器
2.swiper-wrapper是一个按照一定顺序排列的所有轮播图的集合,在默认情况下是从左到右排列
3.swiper-slide:你的每一张轮播图。
4.swiper-pagination是分页器导航,也就是下图所显示的原点
5.swiper-button-prev swiper-button-next 插件默认的按钮左右箭头
6.swiper-scrollbar滚动条
这段代码是官网上的可以直接复制使用,
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide"><img src="./image/轮播/202104011128519006001.jpg" alt="">div>
<div class="swiper-slide"><img src="./image/轮播/202104011133182944010.jpg" alt="">div>
<div class="swiper-slide"><img src="./image/轮播/202104121130451705637.png" alt="">div>
div>
<div class="swiper-pagination">div>
<div class="swiper-button-prev">div>
<div class="swiper-button-next">div>
<div class="swiper-scrollbar">div>
div>
在写完html代码后我们还需要对这个轮播图进行初始化
<script>
var swiper = new Swiper('.swiper-container', {
pagination: {
el: '.swiper-pagination',
dynamicBullets: true,
},
});
</script>
这个初始化有两个参数
第一个参数:Swiper容器的css选择器,当然你也可以把.swiper-container换成任何你自定义的名字。
第二个参数:Swiper的个性化配置。(是以一个对象的形式传参的)
在完成上面几步后轮播图主体就完成了。
下面我介绍几种常用的API
其实我觉得你可以理解为给第二个参数(这个对象)设置属性值。属性名默认给你了
pagination是一个对象这个对象也有属性
el: '.swiper-pagination'
el: 分页器容器的css选择器或HTML标签。分页器等组件可以置于container之外,(也就是说你的分页器可以放在轮播图容器的外面)
type: 'bullets'
type: 分页器的样式
可选类型:
‘bullets’ 圆点(默认)
‘fraction’ 分式
‘progressbar’ 进度条
‘custom’ 自定义
dynamicBullets: true
dynamicBullets: 动态分页器,当你的slide很多时,开启后,分页器小点的数量会部分隐藏。
hideOnClick :true
hideOnClick : 点击轮播图时隐藏分页器
clickable :true
clickable : 设置后你可以通过点击来使轮播图片切换
renderBullet: function (index, className) {
return '+ className + '">' + (index + 1) + '';
}
**renderBullet: ** 设置了这个属性你就可以设置自己的分页器样式,该属性是一个函数类型,参数是下标索引和类名
(类名默认是swiper-pagination-bullet你不用管他)
这个函数的返回值会添加在swiper-pagination中你也可以 在返回值中拼接img标签完成用图片切换轮播图
var mySwiper = new Swiper('.swiper-container', {
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
});
nextEl: '.swiper-button-next'
prevEl: '.swiper-button-prev'
不多说默认的左箭头和右箭头
记住.swiper-button-next找 nextEl 下一张
.swiper-button-prev找 prevEl 上一张
你要是搞反了,会出现点击左箭头跑到下一张的情况
delay: 2000//2秒切换一次
delay: 自动轮播的时间,延时多少秒切换下一张图片
disableOnInteraction: false
**disableOnInteraction: ** 在设置false时,你对轮博图操作不会停止循环,而true,在你对轮博图操作时会停止自动轮播
//鼠标覆盖停止自动切换
mySwiper.el.onmouseover = function(){
mySwiper.autoplay.stop();
}
//鼠标离开开始自动切换
mySwiper.el.onmouseout = function(){
mySwiper.autoplay.start();
}
**mySwiper.autoplay.stop() mySwiper.autoplay.start()**一个开始轮播,一个暂停轮播,不多说,那个mySwiper应该是可以修改的,名字是你初始化的swiper名字。
这些方法一般用在外部的元素操控轮播图的切换
mySwiper.slideTo(0, 1000, false);//切换到第一个slide,速度为1秒
mySwiper.slideTo 这个就是根据下标来切换指定的图片(还挺有用的,我这个项目正好用到这个方法了)第三个值:设置为false时不会触发transition回调函数
$('#btn1').click(function(){
mySwiper.slidePrev();
})
$('#btn2').click(function(){
mySwiper.slideNext();
})
mySwiper.slidePrev() mySwiper.slideNext()
看到这个next和prev就知道这个控制切换上一张和下一张的方法
mySwiper.realIndex
mySwiper.realIndex 获取当前轮播图的索引(感觉这个用到的地方会很多)从0开始
mySwiper.isEnd
mySwiper.isEnd 判断是不是最后一张轮播图。
(如果这篇文章有什么问题请及时联系我!)