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 相关文章推荐
你的编程语言可以这样做吗?
Sep 07 Javascript
javascript中的对象创建 实例附注释
Feb 08 Javascript
js如何取消事件冒泡
Sep 23 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
Vue-Router实现组件间跳转的三种方法
Nov 07 Javascript
Node中使用ES6语法的基础教程
Jan 05 Javascript
Node.js Buffer用法解读
May 18 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
Dec 20 Javascript
javascript验证form表单数据的案例详解
Mar 25 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
Oct 14 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
基于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
输出控制类
2006/10/09 PHP
PHP安装攻略:常见问题解答(三)
2006/10/09 PHP
php去除换行(回车换行)的三种方法
2014/03/26 PHP
php写的AES加密解密类分享
2014/06/20 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
10款实用的PHP开源工具
2015/10/23 PHP
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
简单了解JavaScript异步
2019/05/23 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
Python之父谈Python的未来形式
2016/07/01 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
大学生创业计划书的用途
2014/01/08 职场文书
小学国庆节活动方案
2014/02/11 职场文书
党风廉政建设责任书
2014/04/14 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
关于Python使用turtle库画任意图的问题
2022/04/01 Python