全面解析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 相关文章推荐
JScript的条件编译
May 29 Javascript
JSON JQUERY模板实现说明
Jul 03 Javascript
JavaScript下利用fso判断文件是否存在的代码
Dec 11 Javascript
javascript五图轮播切换实用版
Aug 17 Javascript
jQuery获取浏览器中的分辨率实现代码
Apr 23 Javascript
有关Promises异步问题详解
Nov 13 Javascript
解决jQuery使用JSONP时产生的错误
Dec 02 Javascript
jQuery EasyUI 获取tabs的实例解析
Dec 06 Javascript
提高JavaScript执行效率的23个实用技巧
Mar 01 Javascript
Vuex利用state保存新闻数据实例
Jun 28 Javascript
angular中的cookie读写方法
Aug 02 Javascript
vue favicon设置以及动态修改favicon的方法
Dec 21 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利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
PHP扩展开发入门教程
2015/02/26 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
childNodes.length与children.length的区别
2009/05/14 Javascript
js 日期转换成中文格式的函数
2009/07/07 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
原生js拖拽功能制作滑动条实例代码
2021/02/05 Javascript
深入解析Python中的变量和赋值运算符
2015/10/12 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
python3.6数独问题的解决
2019/01/21 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
创先争优制度
2014/01/21 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
运动会稿件300字
2014/02/14 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL