1、轮播图需要引入js文件
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"></script>
2、幻灯片:
![image.png](/uploads/projects/zhangxinxin-4ensx@uixr8f/829751455be86c8a6e068e99f49c3f44.png)
<div class="row">
<div class="col">
<div class="carousel slide carousel-fade" data-ride="carousel"><!-- carousel:轮播图的class --><!-- data-ride="carousel":js交互,运动 -->
<!-- slide:滚动效果 carousel-fade:透明度变化-->
<div class="carousel-inner"><!-- carousel-inner:专门存放图片 -->
<div class="carousel-item active"><!-- active:轮播图需要有激活!!! -->
<!-- 通过transtion运动 -->
<img src="images/pic_01.jpg" class="img-fluid"><!-- 第一种尺寸:响应式img-fluid,第二种:d-block,给w-100 -->
</div>
<div class="carousel-item">
<img src="images/pic_02.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_03.jpg" class="img-fluid">
</div>
</div>
</div>
</div>
</div>
3、带控制功能的轮播图
![image.png](/uploads/projects/zhangxinxin-4ensx@uixr8f/254f826ee4ab8c73f9d5129b60f40736.png)
<div class="row mt-5">
<div class="col">
<div class="carousel slide" data-ride="carousel" id="control"><!--control:自己起名字 -->
<div class="carousel-inner">
<div class="carousel-item active">
<img src="images/pic_01.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_02.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_03.jpg" class="img-fluid">
</div>
</div>
<!-- 添加左右箭头 --> <!-- 左右空间很大,照顾到了用户 -->
<a href="#control" class="carousel-control-prev" data-slide="prev">
<span class="carousel-control-prev-icon"></span>
</a>
<a href="#control" class="carousel-control-next" data-slide="next">
<span class="carousel-control-next-icon"></span>
</a>
</div>
</div>
</div>
4、包含指示器功能的轮播图
![image.png](/uploads/projects/zhangxinxin-4ensx@uixr8f/f6fedc433a6bf005c3f8d35b39b64994.png)
<div class="row mt-5">
<div class="col">
<div class="carousel slide" data-ride="carousel" id="indicators"><!-- 注意id不能重复 -->
<div class="carousel-inner">
<div class="carousel-item active">
<img src="images/pic_01.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_02.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_03.jpg" class="img-fluid">
</div>
</div>
<!-- 添加左右箭头 -->
<a href="#indicators" class="carousel-control-prev" data-slide="prev">
<span class="carousel-control-prev-icon"></span>
</a>
<a href="#indicators" class="carousel-control-next" data-slide="next">
<span class="carousel-control-next-icon"></span>
</a>
<!-- 添加指示器 -->
<ol class="carousel-indicators"> <!-- ol:有序列表 -->
<li data-target="#indicators" data-slide-to="0" class="active"></li><!-- data-slide-to:图片索引值 -->
<li data-target="#indicators" data-slide-to="1"></li>
<li data-target="#indicators" data-slide-to="2"></li>
</ol>
</div>
</div>
</div>
5、包含字幕的轮播图
![image.png](/uploads/projects/zhangxinxin-4ensx@uixr8f/123a408b701ba3f4454a9795905f38e5.png)
<div class="row mt-5">
<div class="col">
<div class="carousel slide" data-ride="carousel" id="captions">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="images/pic_01.jpg" class="img-fluid">
<div class="carousel-caption text-danger"> <!-- 字幕 -->
<h5>这是第1张图</h5>
<p>这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明</p>
</div>
</div>
<div class="carousel-item">
<img src="images/pic_02.jpg" class="img-fluid">
<div class="carousel-caption text-danger">
<h5>这是第2张图</h5>
<p>这是第2张图的说明这是第1张图的说明这是第2张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明</p>
</div>
</div>
<div class="carousel-item">
<img src="images/pic_03.jpg" class="img-fluid">
<div class="carousel-caption text-danger">
<h5>这是第3张图</h5>
<p>这是第3张图的说明这是第3张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明这是第1张图的说明</p>
</div>
</div>
</div>
<!-- 添加左右箭头 -->
<a href="#captions" class="carousel-control-prev" data-slide="prev">
<span class="carousel-control-prev-icon"></span>
</a>
<a href="#captions" class="carousel-control-next" data-slide="next">
<span class="carousel-control-next-icon"></span>
</a>
<!-- 添加指示器 -->
<ol class="carousel-indicators">
<li data-target="#captions" data-slide-to="0" class="active"></li>
<li data-target="#captions" data-slide-to="1"></li>
<li data-target="#captions" data-slide-to="2"></li>
</ol>
</div>
</div>
</div>
6、设置轮播图的选项
![image.png](/uploads/projects/zhangxinxin-4ensx@uixr8f/ea5194310a44d6e9b5ad762338cbe208.png)
<div class="row mt-5">
<div class="col">
<div class="carousel slide" id="options" data-ride="carousel" data-interval='2000' data-keyboard='true'
data-pause='false' data-wrap='true'><!-- data-interval='2000':时间2s,也可单独给图片设置-->
<!-- data-keyboard='true':可以键盘操纵??? -->
<!-- data-pause='hover':鼠标悬停在上面轮播图不会运动 -->
<!-- data-wrap='true':决定轮播图是否循环播放 -->
<div class="carousel-inner">
<div class="carousel-item active">
<img src="images/pic_01.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_02.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_03.jpg" class="img-fluid">
</div>
</div>
<!-- 添加左右箭头 -->
<a href="#options" class="carousel-control-prev" data-slide="prev">
<span class="carousel-control-prev-icon"></span>
</a>
<a href="#options" class="carousel-control-next" data-slide="next">
<span class="carousel-control-next-icon"></span>
</a>
<!-- 添加指示器 -->
<ol class="carousel-indicators">
<li data-target="#options" data-slide-to="0" class="active"></li>
<li data-target="#options" data-slide-to="1"></li>
<li data-target="#options" data-slide-to="2"></li>
</ol>
</div>
</div>
</div>
7、方法与事件:通过js控制
![image.png](/uploads/projects/zhangxinxin-4ensx@uixr8f/51656523eeb723298ac9ff69dad8a147.png)
<div class="row mt-5">
<div class="col">
<div class="carousel slide" id="methods">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="images/pic_01.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_02.jpg" class="img-fluid">
</div>
<div class="carousel-item">
<img src="images/pic_03.jpg" class="img-fluid">
</div>
</div>
<!-- 添加左右箭头 -->
<a href="javascript:;" class="carousel-control-prev prevBtn"><!-- 没有href页面会刷新 -->
<span class="carousel-control-prev-icon"></span>
</a>
<a href="javascript:;" class="carousel-control-next nextBtn">
<span class="carousel-control-next-icon"></span>
</a>
<!-- 添加指示器 -->
<ol class="carousel-indicators indicatorsBtn">
<li class="active"></li>
<li></li>
<li></li>
</ol>
</div>
<button class="btn btn-primary play">开始</button><!-- btn-primary play:自己编的 -->
<button class="btn btn-primary pause">暂停</button>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"></script>
<script>
//初始化以及开始播放
$('.play').click(function () {
$('#methods').carousel({
interval: 2000
});
$('#methods').carousel('cycle'); //提供的cycle的方法
});
//暂停播放
$('.pause').click(function () {
$('#methods').carousel('pause');
});
//上一张功能
$('.prevBtn').click(function () {
$('#methods').carousel('prev');
});
//下一张功能
$('.nextBtn').click(function () {
$('#methods').carousel('next');
});
//指示器点击的功能
$('.indicatorsBtn li').each(function (index, element) { //element:循环到的li
$(element).click(function () {
$('#methods').carousel(index)
});
});
//两个事件(固定事件名)
$('#methods').on('slide.bs.carousel', function (ev) { //开始切换的事件
/*console.log(
ev.direction, //当前走的方向
ev.relatedTarget, //当前走的哪一个图片(DOM)
ev.from, //当前走的图片的索引
ev.to, //要走到的图片的索引
);*/
console.log('开始走');
});
$('#methods').on('slid.bs.carousel', function () { //结束切换的事件
// do something…
console.log('走完了');
});
</script>