8.11.3 通过JS触发轮播图

8.11.3 通过JS触发轮播图

Bootstrap同样支持使用JS来触发轮播图。Bootstrap为轮播图提供了一个carousel()方法,该方法有如下几个用法。

  1. 不传入参数:默认情况下,轮播插件下载完成后会自动解析data-*属性激活轮播图。如果在轮播图容器上没有指定data-ride属性,则需要调用该方法。
  2. 传入JS对象:JS对象支持intervalpausewrapkeyboard这些选项,这些选项与应用于轮播图容器上的data-*属性的意义相同。
  3. 传入字符串参数或数字参数。对于传入字符串参数的情形,Bootstrap可支持传入如下参数。
    • 'cycle':让轮播图从左到右开始轮播。
    • 'pause':让轮播图停止。
    • 整数:让轮播图跳转到特定的图片。
    • 'prev':让轮播图跳转到上一张图片。
    • 'next':让轮播图跳转到下一张图片。

程序示例

下面代码示范了通过JS代码来实现动态轮播图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> 轮播图 </title>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../bootstrap/css/bootstrap-theme.min.css">
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script>
</head>

<body>
<div class="container">

<button class="btn btn-primary" onclick="$('#myCarousel').carousel('cycle');">
开启自动播放</button>
<button class="btn btn-danger" onclick="$('#myCarousel').carousel('pause');">
停止自动播放</button>
<!-- 轮播图容器 -->
<div id="myCarousel" class="carousel">
<!-- 轮播图显示器 -->
<ul class="carousel-indicators">
<li class="active" onclick="$('#myCarousel').carousel(0);"></li>
<li onclick="$('#myCarousel').carousel(1);"></li>
<li onclick="$('#myCarousel').carousel(2);"></li>
<li onclick="$('#myCarousel').carousel(3);"></li>
</ul>
<!-- 轮播图主体内容 -->
<div class="carousel-inner" role="listbox">
<!-- 每个class='item'的div元素代表一个轮播项 -->
<div class="item active">
<img src="images/lijiang.jpg" alt="漓江">
<!-- 图片说明 -->
<div class="carousel-caption">
<h4>漓江</h4>
<div>漓江风光有山青、水秀、洞奇、石美“四胜”之誉。从桂林至阳朔的83公里漓江河段,集中了桂林山水的精华,令人有“舟行碧波上,人在画中游”之感。</div>
</div>
</div>
<div class="item">
<img src="images/shuangta.jpg" alt="双塔">
<!-- 图片说明 -->
<div class="carousel-caption">
<h4>金银双塔</h4>
<div>金银双塔白天和夜晚晚会呈现出截然不同的美景,白天让人觉得庄严、肃穆,而当夜幕降临,在灯光的映照下,则给人以亲切温馨的感觉。</div>
</div>
</div>
<div class="item">
<img src="images/qiao.jpg" alt="桥">
</div>
<div class="item">
<img src="images/xiangbi.jpg" alt="象鼻山">
</div>
</div>
<!-- 轮播图的前、后控制按钮 -->
<a class="left carousel-control" role="button" onclick="$('#myCarousel').carousel('prev');">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a class="right carousel-control" role="button" onclick="$('#myCarousel').carousel('next');">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
</div>
</body>

</html>

这里没有为轮播图设置data-*属性来激活轮播图,因此需要通过JS代码激活轮播图。通过JS代码来激活轮播图主要通过为carousel()方法传入不同参数来实现:

  • 调用carousel('cycle')可以控制轮播图从左到右开始轮播。
  • 调用carousel('pause')可以控制轮播图停止轮播。
  • 调用carousel(0)可以控制轮播图跳转到第一张图片。
  • 调用carousel('prev')可以控制轮播图跳转到上一张图片。
  • 调用carousel('next')控制轮播图跳转到下一张图片。