Bootstrap中javascript插件
前言
Bootstrap提供了12个JavaScript插件,如果引入Bootstrap.js文件就意味着将这12个插件都引入页面中,但是还有一种引入方式,就是单个引入JavaScript插件。下载Bootstrap源码下载时,里面会有一个js文件夹。文件夹中的.js文件有单个的JavaScript插件文件。在4X版本以上的Bootstrap引入的方法存在差异
data属性
Bootstrap中的JavaScript插件可以只通过HTML代码就能实现具有JavaScript特性的功能。它是Bootstrap已经通过JavaScript和jQuery封装了相应的插件。我们需要按照规范使用。这个规范最重要的就是data属性。data属性API是Bootstrap中的一等API可以仅仅通过data属性API就能使用所有的Bootstrap插件。
//关闭属性:
$(document).off('.data-api');
//对特定的插件关闭
$(document).off('.alert.data-api');
动画过渡
Bootstrap使用的动画是CSS3的语法。使用时可以单独引入transition.js。在Bootstrap中一般不会直接使用动画过渡插件,而是把它的功能融入到其他插件中使用。
<head> <style> #div1{ width:100px; height:100px; background:red; transition:all 3s; } #div1:hover{ background:green; } </style> </head> <body> <div id="div1"><div> <script src="js/jquery-1.12.4.js"></script> <script src="transition.js"></script> <script> var div=document.getElementById('div1'); div.addEventListener('transitionend',function(e){ alert("浏览器支持过渡效果"); }) </script> </body>
模态框
模态框(Model)是绝大部分网站需要的交互式功能,他能更加灵活地以对话框的形式出现,具有最小和最实用的功能集。前面说过可以仅仅通过data属性API就能使用所有的Bootstrap插件,无须写一行JavaScript代码。
模态框布局和样式
默认的模态框的基本结构中包括模态框的头部(标题和关闭符号)、中间主体部分和底部(放置操作按钮)
<div id="mymodal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button class="close" data-dismiss="modal">×</button> <h4 class="modal-title">我是标题</h4> </div> <div class="media-body"> <p> 我是内容……</p> </div> <div class="modal-footer"> <button class="btn btn-default" data-dismiss="modal">关闭</button> <button class="btn btn-primary">保存</button> </div> </div> </div> </div>
1.不要在一个模态框上重叠另外一个模态框,要想同时支持多个模态框,需要通过写额外的代码来实现。
2.档的最高层内(尽量作为body标签的直接子元素),以避免其他组件影响模态框的展现和功能。
模态框尺寸
<a href="#mymodal1" class="btn btn-primary" data-toggle="modal">大尺寸模态框</a> <a href="#mymodal2" class="btn btn-primary" data-toggle="modal">小尺寸模态框</a> <!--弹出的大模态框--> <div id="mymodal1" class="modal fade bs-example-modal-lg"> <div class="modal-dialog modal-lg"> …… </div> </div> <!--弹出的小模态框--> <div id="mymodal2" class="modal fade bs-example-modal-sm"> <div class="modal-dialog modal-sm"> …… </div> </div>
模态框声明选项
使用data属性API来实现一些交互功能,除了data-toggle外,模态框还可以设置其他的data属性来完成别的功能。- data-backdrop - 是否包含一个背景div,如果为true,则单击该背景(不是弹窗本身)时关闭弹窗;值为static,则单击该背景div元素时不关闭弹窗
- data-keyboard - 按Esc键时关闭弹窗,为false则不会关闭
- data-show - 初始化时是否显示
- href - 提供的是URL,则利用jQuery的load方法从此URL地址加载要展示的内容(只加载一次)并插入modal-content内。如果使用的是data属性API。可以利用href属性指定内容来源地址
JavaScript操作模态框
模态框属性
- backdrop - 是否包含一个背景div,如果为true,则单击该背景(不是弹窗本身)时关闭弹窗;值为static,则单击该背景div元素时不关闭弹窗
- keyboard - 按Esc键时关闭弹窗,为false则不会关闭
- show - 初始化时是否显示
模态框方法
- toggle - 触发时,反转弹窗的状态,当时是开启,则关闭;反之则开启$(‘#mymodal’).modal(‘toggle’);
- show - 触发时,显示弹窗$(‘#mymodal’).modal(‘show’);
- hide - 触发时,关闭弹窗$(‘#mymodal’).modal(‘hide’);
模态框事件
- show.bs.modal - show方法调用之后立即触发该事件。如果是通过单击某个作为触发器的元素,则此元素可以通过事件的relatedTarget属性进行访问
- shown.bs.modal - 此事件在模态框已经显示出来(同时在CSS过渡效果完成)之后被触发。如果是通过单击某个作为触发器的元素,则此元素可以通过事件的relatedTarget属性进行访问
- hide.bs.modal - hide方法调用之后立即触发该事件
- hidden.bs.modal - 此事件在模态框被隐藏(并且同时在CSS过渡效果完成)之后触发
选项卡
选项卡(Tab)组件是Bootstrap提供的一种非常常用的功能,和平时使用的Windows操作系统里的选项卡设置一样,单击一个选项,下面就显示对应的选项卡面板。
选项卡布局和样式
<ul class="nav nav-tabs"> <li class="active"><a href="#name1" data-toggle="tab">home</li> <li><a href="#name2" data-toggle="tab">Profile</a></li> <li><a href="#name3" data-toggle="tab">fat</a></li> <li><a href="#name4" data-toggle="tab">mdo</a></li> </ul> <div class="tab-content"> <div class="tab-pane fade in active" id="name1"> <p>……</p> </div> <div class="tab-pane fade in active" id="name2"> <p>……</p> </div> <div class="tab-pane fade in active" id="name3"> <p>……</p> </div> <div class="tab-pane fade in active" id="name4"> <p>……</p> </div> </div>
旋转轮播
旋转轮播布局和样式
<div id="myCarousel" class="carousel slide" data-ride="carousel"> <div class="carousel-inner"> <div class="item active"> <img src="image/ylimg1.jpg" alt="..."> </div> <div class="item"> <img src="image/ylimg2.jpg" alt="..."> </div> </div> <ol class="carousel-indicators"> <li data-targer="#mCarousel" data-slide-to="0" class="active"></li> <li data-targer="#mCarousel" data-slide-to="1"></li> </ol> <a class="left carousel-control" href="#myCarousel" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left"></span> </a> <a class="right carousel-control" href="#myCarousel" data-slide="next"> <span class="glyphicon glyphicon-chevron-left"></span> </a> </div>
旋转轮播自定义属性
我们可以使用data属性API来实现一些交互功能,除了data-ride、data-slide、data-slide-to以外,轮播插件还支持其他三个自定义属性。
- data-interval - 幻灯片轮播的等待时间(毫秒)。如果为false,轮播图将不会主动开始轮播
- data-pause - 默认鼠标停留在幻灯片区域图片停止轮播,离开即播放
- data-wrap - 轮播是否持续循环
选择轮播事件
- slide.bs.carousel - 此事件在slide方法被调用后,未开始处理下一张图片之前立即触发
- slid.bs.carousel - 在一张图片结束轮播之后触发
滚动监听
旋转轮播布局和样式
滚动监听(Scrollspy)插件根据滚动的位置自动更新导航条中相应的导航项。当滚动区域到达指定的时,你就可以给出想要修改的样式。<div id="selector"> <nav class="navbar navbar-default navbar-fixed-top"> <ul class="nav navbar-nav"> <li class="active"><a href="#name1">@fat</a></li> <li><a href="#name2">@mdo</a></li> <li><a href="#name2">@one</a></li> <li><a href="#name2">@two</a></li> </ul> </nav> </div> <div data-offset="0" data-targer="selector" data-spy="scroll" style="height:300px;overflow:auto;"> <h4 id="name1">@fat</h4> <p>Ad leggings keytar,brunch id art...</p> <h4 id="name2">@mdo</h4> <p>Veniam marfa mustache...</p> <h4 id="name3">one</h4> <p>Occaecat commodo aliqua ...</p> <h4 id="name4">two</h4> <p>In incididunt echo...</p> </div>