https://www.swiper.com.cn/ Swiper是纯javascript打造的滑动特效插件,面向手机、平板电脑等移动终端
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>基于swiper实现</title>
<!-- IMPORT CSS -->
<link rel="stylesheet" href="css/reset.min.css">
<link rel="stylesheet" href="css/swiper-bundle.min.css">
<style>
.swiper-container {
width: 1000px;
height: 400px;
}
.swiper-slide img {
display: block;
width: 100%;
height: 100%;
}
/* 自定义样式:看到插件生成的样式类和样式,我们自己按照样式类名去修改 如果想让我们自己写的样式权重最高
则设置 !important*/
.swiper-pagination .swiper-pagination-bullet{
width: 12px;
height: 12px;
}
.swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{
background: red !important;
}
</style>
</head>
<body>
<div class="swiper-container" id="container1">
<!-- 轮播图 -->
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="images/banner01.png" alt="">
</div>
<div class="swiper-slide">
<img src="images/banner02.jpg" alt="">
</div>
<div class="swiper-slide">
<img src="images/banner03.png" alt="">
</div>
<div class="swiper-slide">
<img src="images/banner04.png" alt="">
</div>
<div class="swiper-slide">
<img src="images/banner05.png" alt="">
</div>
</div>
<!-- 分页器 -->
<div class="swiper-pagination"></div>
<!-- 导航按钮 -->
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
<!-- IMPORT JS -->
<script src="js/swiper-bundle.min.js"></script>
<script src="js/index.js"></script>
</body>
</html>
JS
let sw1 = new Swiper('#container1', {
//基础配置
// initialSlide: 2, //默认0 设定初始化时slide的索引[跟克隆的索引无关 显示的真实的索引]
direction: 'horizontal', // 水平切换选项 horizontal[水平] vertical[垂直]
speed: 300,//每一次切换的动画时间 300ms
//grabCursor: true,//放上去有手指
loop: true, // 开启循环切换[左右运动实现无缝衔接] 注意索引因为克隆两张的原因,发生改变了
effect:'fade',//切换效果:slide[位移] fade[淡入] cube[方块] coverflow[实现3D流] flip翻转
// 自动轮播=======
autoplay: {
delay: 3000, //间隔多长时间切换一次
stopOnLastSlide: false,//如果设置为true,当切换到最后一个slide时停止自动切换。(loop模式下无效)。
//
disableOnInteraction: false
},
//分页器
pagination: {
el: '.swiper-pagination',
//type:'bullets' //bullets[圆点默认] bullets[分式] progressbar[进度条]
clickable: true //点击分页器的指示点分页器会控制Swiper切换
},
// 前进后退按钮
navigation: {
prevEl: '.swiper-button-prev',
nextEl: '.swiper-button-next'
},
// 事件监听【回调函数】
on:{
//swiper当前创造的这个类的实例
init(swiper){
console.log('初始化完成');
},
transitionEnd(swiper){
//swiper属性
let {activeIndex,realIndex,slides} =swiper;
//activeIndex 包含克隆的索引
//realIndex 真实的索引
//slides 显示的轮播图
console.log('切换完成',activeIndex,realIndex,slides);
}
}
});
//自己控制鼠标进入/离开容器,同时管控自动轮播的暂停和继续
let container=document.querySelector('#container1');
container.addEventListener('mouseenter',()=> sw1.autoplay.stop());
container.addEventListener('mouseleave',()=> sw1.autoplay.start());