Bootstrap模块dropdown实现下拉框响应


Posted in Javascript onMay 22, 2016

本文介绍了Bootstrap下拉框模块dropdown的使用方法,供大家参考,具体内容如下

一、源码分析:
Dropdowns.scss:
下拉框模块
Javascripts/bootstrap/dropdown.js:实现下拉框响应

二、功能及原理:
下拉选项卡,默认不能实现显示选中项的功能

原理:

1、利用dropdown类作为定位点,然后让子级的列表dropdown-menu绝对定位实现,还需要加一个单击点作为设置data-toggle=”dropdown”才能做关联。
2、 需要js插件的支持

三、源码分析:
1、caret:实现向下的三角形,利用边框实现的
    1.1、边框颜色默认是字体颜色
    1.2、三角形的实现:边框要有宽度,然后相邻两边需有宽度,但颜色透明;最后还需要元素为行内块元素,才能使其高、宽为0。
    1.3、代码如下

<span style="border-left: 4px solid; border-top: 4px solid transparent; border-bottom: 4px solid transparent; height: 0px; width: 0px; line-height: normal; display: inline-block; "></span>

2、在document上绑定了click事件的监听,监听类型为data-toggle=”dropdown”。
3、Js插件写的Plugin函数,和类的构造函数是用于js方式调用插件;
4、而data-*模式调用插件,用到是向document注入事件实现的,代码如下:

$(document)
.on('click.bs.dropdown.data-api', clearMenus)
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
.on('keydown.bs.dropdown.data-api','.dropdown-menu',Dropdown.prototype.keydown)

代码直接调用了Dropdown定义的方法,这里经妙的设计在于插件的框架,data-*模式的调用与Js插件模式的调用,而这两种调用模式却利用了同一份代码。
5、如果用Js插件调用,基础方法都要自己调用才行,在创建实例时只会绑定toggle事件。

var Dropdown = function (element) {
 $(element).on('click.bs.dropdown', this.toggle)
}

6、clearMenu:只会清除data-toggle=”dropdown”的元素
7、dropdown-backdrop:用于移动没有单击事件的处理
8、keydown:当dropdown按钮获取焦点的时候,按下键可以展开,按上键收缩的功能
9、data-target和herf=”#id”:是为了实现单击,展开指定的下拉列表,默认是展开与按钮后面兄弟节点:

<ul class="nav nav-pills navbar-nav">
 <li><a>Index</a></li>
 <li><a>产吕</a></li>
 <li > <a data-toggle="dropdown" href="#name" >实用工具</a></li>
</ul>
<div id="name" >
 <ul class="dropdown-menu" >
 <li><a>关于我们</a></li>
 </ul>
</div>

10、实现向上弹出子菜单,用bottom:100%(弹出子菜单bottom的定位)实现
11、应用示例

<div id="dropdown" class="dropdown">
<a id="dropdown-btn" data-target="#dropdown" >number</a>
<ul class="dropdown-menu" >
 <li><a>3343</a></li>
<li><a>555</a></li>
</ul>
</div>

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

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

Javascript 相关文章推荐
解析javascript 数组以及json元素的添加删除
Jun 26 Javascript
AngularJS入门教程之Hello World!
Dec 06 Javascript
JavaScript获取网页中第一个图片id的方法
Apr 03 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
jQuery ajax读取本地json文件的实例
Oct 31 jQuery
js经验分享 JavaScript反调试技巧
Mar 10 Javascript
微信小程序中添加客服按钮contact-button功能
Apr 27 Javascript
js数组去重的N种方法(小结)
Jun 07 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
详解从vue-loader源码分析CSS Scoped的实现
Sep 23 Javascript
vue+ts下对axios的封装实现
Feb 18 Javascript
js实现有趣的倒计时效果
Jan 19 Javascript
基于Bootstrap实现图片轮播效果
May 22 #Javascript
基于Vue.js的表格分页组件
May 22 #Javascript
js正则表达式replace替换变量方法
May 21 #Javascript
深入解析JavaScript中的立即执行函数
May 21 #Javascript
详解JavaScript中Hash Map映射结构的实现
May 21 #Javascript
简单掌握JavaScript中const声明常量与变量的用法
May 21 #Javascript
基于javascript实现表格的简单操作
May 21 #Javascript
You might like
德劲1103的维修打理经验
2021/03/02 无线电
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
JavaScript 对象模型 执行模型
2010/10/15 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
2018/04/27 jQuery
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
极简的Python入门指引
2015/04/01 Python
Python 操作文件的基本方法总结
2017/08/10 Python
python中int与str互转方法
2018/07/02 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
升国旗演讲稿
2014/09/05 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
北京颐和园导游词
2015/01/30 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
任命书格式模板
2015/09/22 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript