全面解析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 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
经常用的图片在容器中的水平垂直居中实例
Jun 10 Javascript
js中方法重载如何实现?以及函数的参数问题
Aug 01 Javascript
理解javascript函数式编程中的闭包(closure)
Mar 08 Javascript
JavaScript中的Number数字类型学习笔记
May 26 Javascript
connection reset by peer问题总结及解决方案
Oct 21 Javascript
vue.js指令v-for使用及索引获取
Nov 03 Javascript
在vue中安装使用vux的教程详解
Sep 16 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
Jan 09 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
Sep 04 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 Javascript
JavaScript中关于预编译、作用域链和闭包的理解
Mar 31 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连接MongoDB示例代码
2012/09/06 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
AngularJS入门教程之路由与多视图详解
2016/08/19 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
django1.8使用表单上传文件的实现方法
2016/11/04 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
python多线程下信号处理程序示例
2019/05/31 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
python常用函数与用法示例
2019/07/02 Python
Python restful框架接口开发实现
2020/04/13 Python
python 数据类型强制转换的总结
2021/01/25 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
PHP如何与mysql建立链接
2013/05/05 面试题
数控专业大学生的自我鉴定
2013/11/13 职场文书
环境工程毕业生自荐信
2013/11/17 职场文书
医药专业应届毕业生求职信范文
2014/01/01 职场文书
市场营销调查计划书
2014/05/02 职场文书
森林防火宣传标语
2014/06/27 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python