全面解析Bootstrap中Carousel轮播的使用方法


Posted in Javascript onJune 13, 2016

本文实例为大家全面的解析了Bootstrap中Carousel的使用方法,供大家参考,具体内容如下

源码文件:

Carousel.scss
Carousel.js

实现原理:

隐藏所有要显示的元素,然后指定当前要显示的为block,宽、高自适应

源码分析:

 1、Html结构:主要分为以四个部分
  1.1、容器:最外层div,需要一个data-ride=”carousel”来指定为轮播放插件,并且提供一个Id,方便圆圈指示符的关联
  1.2、图片列表部分,用一个外层div包裹所有,然后每个img会被一个div,则class为item的包裹住
  1.3、圆圈指示符:用一个ol列表来显示其各图形列表项,每个列表项需要指定data-slide-to=”index”属性,用于标记当前圆圈的索引号
  1.4、左右控制按钮:实现向左、向右移动的功能
2、Css样式
  2.1、Carousel:只有一个相对定位标记
  2.2、Carousel-inner:旋转图片列表区域,其中每项有item来修饰
   2.2.1、其中的active、next、prev都认为是可见的
   2.2.2、Carousel-caption:表示每个item项应该有标题信息,默认显示下、中位置
  2.3、Carousel-control:设置向左、向右按钮的样式,其中会设置渐变、透明度等信息,提供了icon-prev、icon-next两种额外样式
  2.4、Carousel-indicators:圆圈部分样式,都是绝对定位,每个li设置为行内块元素,用text-indent:-999来隐藏字体
3、Js代码
  3.1、主要核心方法为slide,他实现了图片的切换
    3.1.1、在第一次进行图片切换的时候,都会调用pause方法来暂定定时器,在图片切换完成后才调用cycle方法来启用定时器
    3.1.2、接受的type和next两个参数
      3.1.2.1、Type:表示向上、还是向下换页
      3.1.2.2、Next:本次要显示为活动的Item项,如果不传入则需要通过getItemForDirection方法来获取
    3.1.3、在获取完成$active(当前活动的Item)、$next(需要成为活动项的Item)、isCycling(定时轮播的定时器句柄)、direction(方向)等基本参数
    3.1.4、然后触发slide.bs.carousel事件
    3.1.5、然后设置indicators的索引项
    3.1.6、切换图片,如果支持css动画就用动画切换,否则直接加css来切换
    3.1.7、动画切换原理:
      3.1.7.1、Prev:是向右滚动图片,会组合出的样式:active right(active项) prev right(下一项),这时prev自身为-100%,把图片放在最左边
      3.1.7.2、Next:是向左滚动图片 active left(active项)、next left(下一项),这时next自身为100%,把图片放在最右边
      3.1.7.3、Active right:图片应该是向右,那就应该运动图片宽度的100%
      3.1.7.4、Active left:图片向左,那就应该运行图片宽度的-100%
      3.1.7.5、对比图: 

全面解析Bootstrap中Carousel轮播的使用方法

    3.1.8、实现代码(不包含Css3):  

.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
 display: block;
}
.carousel-inner > .active {
 left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
 position: absolute;
 top: 0;
 width: 100%;
}
.carousel-inner > .next {
 left: 100%;
}
.carousel-inner > .prev {
 left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
 left: 0;
}
.carousel-inner > .active.left {
 left: -100%;
}
.carousel-inner > .active.right {
 left: 100%;
}

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
JQuery实现简单时尚快捷的气泡提示插件
Dec 20 Javascript
原生javascript实现DIV拖拽并计算重复面积
Jan 02 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 Javascript
Angularjs 实现分页功能及示例代码
Sep 14 Javascript
使用AngularJS 跨站请求如何解决jsonp请求问题
Jan 16 Javascript
javascript数组去重常用方法实例分析
Apr 11 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
Jul 18 Javascript
JS 60秒后重新发送验证码的实例讲解
Jul 26 Javascript
ES6中Array.find()和findIndex()函数的用法详解
Sep 16 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 Javascript
VUE中使用MUI方法
Feb 12 Javascript
JavaScript计算正方形面积
Nov 26 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
Jun 13 #Javascript
JavaScript遍历求解数独问题的主要思路小结
Jun 12 #Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 #Javascript
JavaScript解八皇后问题的方法总结
Jun 12 #Javascript
jQuery遍历json的方法(推荐)
Jun 12 #Javascript
jQuery移动端图片上传组件
Jun 12 #Javascript
jQuery通过ajax请求php遍历json数组到table中的代码(推荐)
Jun 12 #Javascript
You might like
图书管理程序(一)
2006/10/09 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
文本链接逐个出现的js脚本
2007/12/12 Javascript
理解 JavaScript 预解析
2009/10/25 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
pytorch 预训练层的使用方法
2019/08/20 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
h5封装下拉刷新
2020/08/25 HTML / CSS
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
语文教育专业应届生求职信
2013/11/23 职场文书
硕士研究生个人求职信
2013/12/04 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
写给老婆的保证书
2015/02/27 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
深入详解JS函数的柯里化
2021/06/09 Javascript
Hive导入csv文件示例
2022/06/25 数据库