Bootstrap每天必学之js插件


Posted in Javascript onNovember 30, 2015

1、Bootstrap 插件概览

在前面 布局组件 章节中所讨论到的组件仅仅是个开始。Bootstrap 自带 12 种 jQuery 插件,扩展了功能,可以给站点添加更多的互动。即使您不是一名高级的 JavaScript 开发人员,您也可以着手学习 Bootstrap 的 JavaScript 插件。利用 Bootstrap 数据 API(Bootstrap Data API),大部分的插件可以在不编写任何代码的情况被触发。

Bootstrap每天必学之js插件

2、导入JavaScript插件

Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单、按钮组、导航、分页等。他还包括一些JavaScript的插件。

Bootstrap的JavaScript插件可以单独导入到页面中,也可以一次性导入到页面中。因为在Bootstrap中的JavaScript插件都是依赖于jQuery库,所以不论是单独导入还一次性导入之前必须先导入jQuery库。

一次性导入:

Bootstrap提供了一个单一的文件,这个文件包含了Bootstrap的所有JavaScript插件,即bootstrap.js(压缩版本:bootstrap.min.js)。

<!—导入jQuery版本库,因为Bootstrap的JavaScript插件依赖于jQuery -->
<script src="/jquery/1.9.0/jquery.js"></script>
<!—- 一次性导入所有Bootstrap的JavaScript插件(压缩版本) -->
<script src="js/bootstrap.min.js"></script>

单独导入:

为方便单独导入特效文件,Bootstrap V3.2中提供了12种JavaScript插件,他们分别是:

☑ 动画过渡(Transitions):对应的插件文件“transition.js”

☑ 模态弹窗(Modal):对应的插件文件“modal.js”

☑ 下拉菜单(Dropdown):对应的插件文件“dropdown.js”

☑ 滚动侦测(Scrollspy):对应的插件文件“scrollspy.js”

☑ 选项卡(Tab):对应的插件文件“tab.js”

☑ 提示框(Tooltips):对应的插件文件“tooltop.js”

☑ 弹出框(Popover):对应的插件文件“popover.js”

☑ 警告框(Alert):对应的插件文件“alert.js”

☑ 按钮(Buttons):对应的插件文件“button.js”

☑ 折叠/手风琴(Collapse):对应的插件文件“collapse.js”

☑ 图片轮播Carousel:对应的插件文件“carousel.js”

☑ 自动定位浮标Affix:对应的插件文件“affix.js”

3、data 属性

你可以仅仅通过 data 属性 API 就能使用所有的 Bootstrap 插件,无需写一行 JavaScript 代码。这是 Bootstrap 中的一等 API,也应该是你的首选方式。

话又说回来,在某些情况下可能需要将此功能关闭。因此,我们还提供了关闭 data 属性 API 的方法,即解除以 data-api 为命名空间并绑定在文档上的事件。就像下面这样:

$(document).off('.data-api')

如需关闭一个特定的插件,只需要在 data-api 命名空间前加上该插件的名称作为命名空间即可,如下所示:

$(document).off('.alert.data-api')

4、编程方式的 API

我们为所有 Bootstrap 插件提供了纯 JavaScript 方式的 API。所有公开的 API 都是支持单独或链式调用方式,并且返回其所操作的元素集合(注:和jQuery的调用形式一致)。例如:

$(".btn.danger").button("toggle").addClass("fat")

所有的方法都可以接受一个可选的选项对象作为参数,或者一个代表特定方法的字符串,或者不带任何参数(这种情况下,将会初始化插件为默认行为),如下所示:

// 初始化为默认行为
$("#myModal").modal() 
 // 初始化为不支持键盘 
$("#myModal").modal({ keyboard: false }) 
// 初始化并立即调用 show
$("#myModal").modal('show')

每个插件在 Constructor 属性上也暴露了其原始的构造函数:$.fn.popover.Constructor。如果您想获取某个特定插件的实例,可以直接通过页面元素获取:

 $('[rel=popover]').data('popover').

5、避免命名空间冲突

某些时候 Bootstrap 插件可能需要与其他 UI 框架一起使用。在这种情况下,可能会发生命名空间冲突。如果不幸发生了这种情况,你可以通过调用插件的 .noConflict 方法恢复其原始值。

// 返回 $.fn.button 之前所赋的值
var bootstrapButton = $.fn.button.noConflict() 
// 为 $().bootstrapBtn 赋予 Bootstrap 功能  
$.fn.bootstrapBtn = bootstrapButton

6、事件

Bootstrap 为大多数插件的独特行为提供了自定义事件。一般来说,这些事件有两种形式:
动词不定式:这会在事件开始时被触发。例如 ex: show。动词不定式事件提供了 preventDefault 功能。这使得在事件开始前可以停止操作的执行。

$('#myModal').on('show.bs.modal', function (e) {
// 阻止模态框的显示
 if (!data) return e.preventDefault() 
})

过去分词形式:这会在动作执行完毕之后被触发。例如 ex: shown。

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
网络图片延迟加载实现代码 超越jquery控件
Mar 27 Javascript
jQuery处理xml格式的返回数据(实例解析)
Nov 28 Javascript
JS文本获得焦点清除文本文字的示例代码
Jan 13 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
Sep 29 Javascript
angularjs2中父子组件的数据传递的实例代码
Jul 05 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
vue小白入门教程
Apr 02 Javascript
JavaScript中的事件与异常捕获详析
Feb 24 Javascript
浅谈vue中组件绑定事件时是否加.native
Nov 09 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
May 10 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 Javascript
微信小程序APP的生命周期及页面的生命周期
Apr 19 Javascript
Bootstrap每天必学之面板
Nov 30 #Javascript
Bootstrap每天必学之媒体对象
Nov 30 #Javascript
javascript针对cookie的基本操作实例详解
Nov 30 #Javascript
javascript闭包(Closure)用法实例简析
Nov 30 #Javascript
详解JavaScript的流程控制语句
Nov 30 #Javascript
详解JavaScript的表达式与运算符
Nov 30 #Javascript
Bootstrap每天必学之进度条
Nov 30 #Javascript
You might like
PHP简介
2006/10/09 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
2014/08/06 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
图片onload事件触发问题解决方法
2011/07/31 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
解读python logging模块的使用方法
2018/04/17 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
python实现烟花小程序
2019/01/30 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
小学教师的个人自我鉴定
2013/10/24 职场文书
幼师小班个人总结
2015/02/12 职场文书
活着观后感
2015/06/03 职场文书
行政处罚事先告知书
2015/07/01 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书