把弹出菜单的触发器以及弹出菜单包裹在一个.dropdown
中,或者其它声明了position:relative;
的元素中。而后,添加菜单的HTML。ide
<div class="dropdown open"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </button> <div class="dropdown-menu" aria-labelledby="dropdownMenu1"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> </div> </div>
PS:新知识点的话,则是 .open类。加上以后是打开状态。
spa
你能够视状况在你的弹出菜单中使用<button>
元素,而不是<a>
元素。插件
<div class="dropdown open"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </button> <div class="dropdown-menu" aria-labelledby="dropdownMenu2"> <button class="dropdown-item" type="button">Action</button> <button class="dropdown-item" type="button">Another action</button> <button class="dropdown-item" type="button">Something else here</button> </div> </div>
PS:这里要注意的是在菜单列表中,<button>标签替代了<a>。code
若是说二者有什么差异的话。我想到了以前看文档上所说的,form表单。orm
form控件,没法管理到<a>标签。参考form 表单文档。
事件
默认状况下,一个弹出菜单的菜单是自动放置在父元素下面,与父元素左侧对齐。给.dropdown-menu
添加.dropdown-menu-right
类能使菜单向右侧对齐。ip
<div class="dropdown open"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </button> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenu2"> <button class="dropdown-item" type="button">Action</button> <button class="dropdown-item" type="button">Another action</button> <button class="dropdown-item" type="button">Something else here</button> </div> </div>
PS:当使用 .dropdown-menu-right类。须要设置父类框的宽度。
pdo
在任何一个弹出菜单添加一个头部以标记活动的分区。文档
<div class="dropdown open"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </button> <div class="dropdown-menu"> <h6 class="dropdown-header">Dropdown header</h6> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> </div> </div> </div>
PS:添加 .dropdown-header类。则标签固定且不可编辑。get
使用一个分隔线来对相关的菜单项分组。
<div class="dropdown open"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </button> <div class="dropdown-menu"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="#">Separated link</a> </div> </div>
PS:看到以前的文档里,使用过这个属性 .dropdown-divider类
对弹出菜单中的某一项添加.disabled
类,能够把它们样式化为不可用。
<div class="dropdown open"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown </button> <div class="dropdown-menu"> <a class="dropdown-item" href="#">Regular link</a> <a class="dropdown-item disabled" href="#">Disabled link</a> <a class="dropdown-item" href="#">Another link</a> </div> </div>
依靠数据属性或者JavaScript,经过切换菜单项的父元素上的.open
类,弹出菜单插件能够切换内容(弹出菜单)的可见性。
在移动设备上,打开一个弹出菜单会添加一个.dropdown-backdrop
做为轻触区域,若是在菜单外面轻触时弹,菜单会关闭。这是支持iOS设备的要求。这意味着在移动设备上,从一个打开的弹出菜单切换到另外一个弹出菜单至少须要两次轻触。
注意:data-toggle="dropdown"
属性是关闭弹出菜单的菜单在应用程序级别的依靠。因此最好一直使用它。
给一个连接或者按钮添加一个data-toggle="dropdown"
以切换一个弹出菜单。
不截图了。关键是指data-toggle="dropdown"存在的位置、和对应的关系。
<div class="dropdown"> <button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown trigger </button> <div class="dropdown-menu" aria-labelledby="dLabel"> ... </div> </div>
为了保持URL与连接按钮交互,请使用data-target
属性而不是href="#"
。
<div class="dropdown"> <a id="dLabel1" data-target="#" href="http://example.com" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown trigger </a> <div class="dropdown-menu" aria-labelledby="dLabel1"> <a class="dropdown-item" href="#">Regular link</a> <a class="dropdown-item disabled" href="#">Disabled link</a> <a class="dropdown-item" href="#">Another link</a> </div> </div>
这样的样式有些难看。。。。(吐槽~_~!)
$('.dropdown-toggle').dropdown()
无?
$().dropdown('toggle')
对给定的导航条或轻触导航触发弹出菜单的菜单
PS:这里我尝试了,可是效果是触发点击效果,但不弹出菜单。
全部的弹出菜单事件都是在.dropdown-menu
的父元素上触发的,这个父元素都有一个relatedTarget
属性,它的值是触发的锚元素。
事件 | 描述 |
---|---|
show.bs.dropdown |
当调用显示实例的方法时,会当即触发该事件。 |
shown.bs.dropdown |
当弹出菜单已经对用户可见时(须要等待CSS 过渡完成),会触发该事件。 |
hide.bs.dropdown |
当调用隐藏实例的方法时,会当即触发该事件。 |
hidden.bs.dropdown |
当弹出菜单已经对用户不可见时(须要等待CSS 过渡完成),会触发该事件。 |
$('#myDropdown').on('show.bs.dropdown', function () { // do something… })