全面解析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 相关文章推荐
javascript globalStorage类代码
Jun 04 Javascript
JQuery中each()的使用方法说明
Aug 19 Javascript
如何使用Jquery获取Form表单中被选中的radio值
Aug 09 Javascript
jquery ajax修改全局变量示例代码
Nov 08 Javascript
jquery实现更改表格行顺序示例
Apr 30 Javascript
JavaScript实现表格点击排序的方法
May 11 Javascript
Javascript计算二维数组重复值示例代码
Dec 18 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
Jan 18 Javascript
微信小程序 如何获取网络状态
Jul 26 Javascript
vue中使用rem布局代码详解
Oct 30 Javascript
微信小程序实现星级评价
Nov 20 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 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
用PHP读取IMAP邮件
2006/10/09 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
详解在Python中处理异常的教程
2015/05/24 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
python 获取图片分辨率的方法
2019/01/08 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
定义css设备类型-Media Queries图表简介及使用方法
2013/01/21 HTML / CSS
html5 视频播放解决方案
2016/11/06 HTML / CSS
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
会计电算化专业自荐信
2014/03/15 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
学生打架检讨书
2014/10/20 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
2014年保卫工作总结
2014/12/05 职场文书
导师工作推荐信
2015/03/27 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
python中 .npy文件的读写操作实例
2022/04/14 Python
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记