全面解析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 相关文章推荐
firefo xml 读写实现js代码
Jun 11 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
Aug 04 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
javascript的动态加载、缓存、更新以及复用(一)
Jun 09 Javascript
jquery滚动特效集锦
Jun 03 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
Node解决简单重复问题系列之Excel内容的获取
Jan 02 Javascript
vue弹窗消息组件的使用方法
Sep 24 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
phalcon框架使用指南
2016/02/23 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
js 目录列举函数
2008/11/06 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
JavaScript File分段上传
2016/03/10 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
element-ui多文件上传的实现示例
2019/04/10 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
Python使用剪切板的方法
2017/06/06 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
大专生简历的自我评价
2013/11/26 职场文书
厂长助理岗位职责
2013/12/27 职场文书
中医专业职业生涯规划书范文
2014/01/04 职场文书
金融管理专业求职信
2014/07/10 职场文书
党员个人自我评价
2015/03/03 职场文书
卡特教练观后感
2015/06/08 职场文书
党员理论学习心得体会
2016/01/21 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle