Bootstrap 下拉菜单
2016-03-15 21:37
323 查看
网页交互的时候经常需要上下文菜单或者隐藏/展示菜单项,Bootstrap提供了下拉菜单的设置方法。
只有在菜单的父元素上应用.open样式(当单击“下拉菜单”按钮的时候,会自动在.dropdown样式的div元素上再次附加一个.open样式)并且该元素设定为position:relative(直接使用.dropdown样式)的时候,下拉菜单才会正常显示,
注意:设置菜单标题,则为li元素应用.dropdown-header样式,例子:
效果:(值得注意的是,当我去掉div的open或者 dropdown样式,则什么也不显示)
菜单默认左对齐,给ul加一个pull-right样式,会使菜单变为右对齐:
效果:
二、上面说了最外层div需要有open样式,下拉菜单才能显示,而且,当单击“下拉菜单”按钮的时候,会自动在.dropdown样式的div元素上再次附加一个.open样式,这个按钮就在下拉菜单的上面,例如:
需要注意的是:
1、被单击的链接或按钮上需要应用data-toggl=“dropdown” 样式,以便在初始化的时候JavaScript可以监控单击事件
2、我发现,去掉按钮a的class中的dropdown-toggle样式后,并没有啥影响,这说明JavaScript检测单击事件不使用这个样式,但是可能有其他作用,暂时不知道!
3、为了避免href=”#”被单击时页面跳到顶部,可以使用data-target=”#”代替href=”#”。
实现原理如下:
1、Dropdown插件在网页加载的时候,对所有带有datatoggle=“dropdown”样式的元素进行事件绑定。
2用户单击带有data-toggle=“dropdown”样式的链接或按钮时,触发JavaScript事件代码。
3、Javascript事件代码在父容器(本例是:<li class=“dropdown”>)上加一个.open样式。
4、默认隐藏的.dropdown-menu菜单在外部有了.open样式后,即可显示出来,从而达到预期的效果。
另外:那个按钮可以放在容器元素的外面,此时,需要为ul设置一个id,然后,让按钮的href或data-target的值为此id即可,效果和上例是一样的,例如:
三、JavaScript代码控制菜单的显示与隐藏:
Bootstrap的Dropdown插件也支持JavaScript手动触发的方式,这样的好处是,可以按照自己的方式省略一些元素或者样式:
另外,下拉菜单支持4种类型的事件,分别对应下拉菜单的弹出前、弹出后、关闭前、关闭后,如下图:
上面的这个#myDropdown是的最外层的那个div的 id
四、下拉菜单常用情况
一般下拉菜单都是在导航条(navbar)和选项卡(tab)上实现。
1、导航条实现:
2、选项卡上:
五、按钮分离式下拉菜单
就是单击按钮旁边的小三角弹出下拉菜单,单击按钮可以是其他效果。
另外,给最外层div加一个dropup样式,则会使菜单向上弹出,而不是向下弹出,<div class=dropdown dropup">...</div>
只有在菜单的父元素上应用.open样式(当单击“下拉菜单”按钮的时候,会自动在.dropdown样式的div元素上再次附加一个.open样式)并且该元素设定为position:relative(直接使用.dropdown样式)的时候,下拉菜单才会正常显示,
注意:设置菜单标题,则为li元素应用.dropdown-header样式,例子:
<div class="dropdown open"> <span style="white-space:pre"> </span><ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </div>
效果:(值得注意的是,当我去掉div的open或者 dropdown样式,则什么也不显示)
菜单默认左对齐,给ul加一个pull-right样式,会使菜单变为右对齐:
<div class="dropdown open"> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu pull-right"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </div>
效果:
二、上面说了最外层div需要有open样式,下拉菜单才能显示,而且,当单击“下拉菜单”按钮的时候,会自动在.dropdown样式的div元素上再次附加一个.open样式,这个按钮就在下拉菜单的上面,例如:
<div class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button" href="#">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </div>效果:
需要注意的是:
1、被单击的链接或按钮上需要应用data-toggl=“dropdown” 样式,以便在初始化的时候JavaScript可以监控单击事件
2、我发现,去掉按钮a的class中的dropdown-toggle样式后,并没有啥影响,这说明JavaScript检测单击事件不使用这个样式,但是可能有其他作用,暂时不知道!
3、为了避免href=”#”被单击时页面跳到顶部,可以使用data-target=”#”代替href=”#”。
实现原理如下:
1、Dropdown插件在网页加载的时候,对所有带有datatoggle=“dropdown”样式的元素进行事件绑定。
2用户单击带有data-toggle=“dropdown”样式的链接或按钮时,触发JavaScript事件代码。
3、Javascript事件代码在父容器(本例是:<li class=“dropdown”>)上加一个.open样式。
4、默认隐藏的.dropdown-menu菜单在外部有了.open样式后,即可显示出来,从而达到预期的效果。
另外:那个按钮可以放在容器元素的外面,此时,需要为ul设置一个id,然后,让按钮的href或data-target的值为此id即可,效果和上例是一样的,例如:
<a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button" data-target="#menutest" >Dropdown<span class="caret"></span></a> <div class="dropdown" id="menutest"> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </div>
三、JavaScript代码控制菜单的显示与隐藏:
Bootstrap的Dropdown插件也支持JavaScript手动触发的方式,这样的好处是,可以按照自己的方式省略一些元素或者样式:
<script type=“text/javascript”> $(document).ready( function () { $(‘.dropdown-toggle’).dropdown(); }); </script>
另外,下拉菜单支持4种类型的事件,分别对应下拉菜单的弹出前、弹出后、关闭前、关闭后,如下图:
上面的这个#myDropdown是的最外层的那个div的 id
四、下拉菜单常用情况
一般下拉菜单都是在导航条(navbar)和选项卡(tab)上实现。
1、导航条实现:
<div class="navbar navbar-default"> <div class="navbar-header"><a class="navbar-brand" href="#">Brand</a></div> <ul class="nav navbar-nav"> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </li> </ul> </div>效果:
2、选项卡上:
<ul class="nav nav-pills"> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle btn btn-default" role="button">Dropdown<span class="caret"></span></a> <ul aria-labelledby="dropdownMenu2" role="menu" class="dropdown-menu"> <li class="dropdown-header" role="presentation">翻译图书</li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript编程精解</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript权威指南</a> </li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript设计模式</a></li> <li role="presentation"><a href="#" tabindex="-1" role="menuitem">JavaScript程序设计</a> </li> </ul> </li> </ul>效果:
五、按钮分离式下拉菜单
就是单击按钮旁边的小三角弹出下拉菜单,单击按钮可以是其他效果。
<div class="btn-group"> <button type="button" class="btn btn-default">Default</button> <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown"> <span class="caret"></span> </button> <ul class="dropdown-menu"> <li><a href="#">JavaScript权威指南</a> </li> <li><a href="#">JavaScript设计模式</a> </li> <li><a href="#">JavaScript语言精粹</a> </li> </ul> </div>效果:
另外,给最外层div加一个dropup样式,则会使菜单向上弹出,而不是向下弹出,<div class=dropdown dropup">...</div>
相关文章推荐
- Bootstrap 小图标
- Bootstrap 2.3版与3.0版的使用区别
- bootstrap_下拉菜单+头部
- Bootstrap开发总结
- Bootstrap 引入 栅栏系统 文本 表格 类
- bootstrap的tree控件
- springmvc4 mybatis 整合 框架源码 bootstrap SSM
- Bootstrap学习笔记
- 时间控件在bootstrap模态框中的使用
- bootStrap的模态框在IE的失效
- Bootstrap 辅助样式
- Bootstrap 表单
- Bootstrap 表格
- flask-bootstrap 模板 +用户界面+自定义错误页面
- 初涉bootstrap:bootstrap 插件
- 初涉bootstrap:bootstrap css
- java bootstrap分页
- bootstrap-datetimepicker日期时间选择器使用文档
- 基于bootstrap的网页开发
- bootstrap ace admin 整合java HTML5