📅  最后修改于: 2023-12-03 14:59:32.842000             🧑  作者: Mango
在网页应用程序开发中,下拉菜单是常用的交互组件之一。Bootstrap 5提供了一系列下拉菜单组件,可以方便开发者为网页应用程序添加功能丰富、功能强大的下拉菜单效果。
使用Bootstrap 5实现一个基础下拉菜单很简单,只需要遵循下面的步骤:
dropdown
类名;dropdown-menu
类名;<a>
标签(或<button>
标签)为下拉菜单列添加链接。下面是一个简单的示例:
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
下拉菜单
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
<li><a class="dropdown-item" href="#">选项 1</a></li>
<li><a class="dropdown-item" href="#">选项 2</a></li>
<li><a class="dropdown-item" href="#">选项 3</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">其他</a></li>
</ul>
</div>
该示例中,<div>
元素中的dropdown
类名表明该元素为下拉菜单的上方按钮,<button>
元素为触发下拉菜单的按钮,添加了dropdown-toggle
类名以表明其为下拉菜单触发按钮,<ul>
元素中添加了dropdown-menu
类名以表明其为下拉菜单列表。
在实际开发中,我们通常会自定义下拉菜单的样式和布局,以更好的满足业务需求。
有些业务场景下需要将下拉菜单的列表内容靠右对齐,这时可以在dropdown-menu
类名上添加dropdown-menu-end
类名以实现该效果。示例如下:
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton2" data-bs-toggle="dropdown" aria-expanded="false">
右对齐下拉菜单
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="dropdownMenuButton2">
<li><a class="dropdown-item" href="#">选项 1</a></li>
<li><a class="dropdown-item" href="#">选项 2</a></li>
<li><a class="dropdown-item" href="#">选项 3</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">其他</a></li>
</ul>
</div>
在某些交互场景中,需要实现鼠标悬停到某个元素上时下拉菜单自动出现,并离开时自动隐藏的效果,Bootstrap 5提供了hover
插件以实现该效果。使用方法很简单,只需要在data-bs-trigger
属性中添加hover
即可。示例如下:
<div class="dropdown">
<a href="#" class="dropdown-toggle" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" aria-expanded="false" data-bs-trigger="hover">
悬停下拉菜单
</a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<li><a class="dropdown-item" href="#">选项 1</a></li>
<li><a class="dropdown-item" href="#">选项 2</a></li>
<li><a class="dropdown-item" href="#">选项 3</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">其他</a></li>
</ul>
</div>
在某些交互场景中,需要自定义下拉菜单的触发按钮样式或布局,而不是使用默认的<button>
或<a>
元素,Bootstrap 5提供了dropdown
构造函数以实现这一需求。使用方法如下:
new Dropdown()
方法创建一个Dropdown
对象,该对象中包含了下拉菜单的相关方法和属性;dropdown
和下拉菜单触发按钮类名dropdown-toggle
;data-bs-target
属性引用该标识符。示例如下:
<div class="dropdown">
<div class="my-custom-btn dropdown-toggle" type="button" id="dropdown-custom-btn" data-bs-toggle="dropdown" aria-expanded="false">
自定义下拉菜单
</div>
<ul class="dropdown-menu" aria-labelledby="dropdown-custom-btn">
<li><a class="dropdown-item" href="#" data-bs-target="#item-1">选项 1</a></li>
<li><a class="dropdown-item" href="#" data-bs-target="#item-2">选项 2</a></li>
<li><a class="dropdown-item" href="#" data-bs-target="#item-3">选项 3</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#" data-bs-target="#other">其他</a></li>
</ul>
</div>
<script>
var dropdownElementList = [].slice.call(document.querySelectorAll('.dropdown-toggle'))
var dropdownList = dropdownElementList.map(function (dropdownToggleEl) {
return new bootstrap.Dropdown(dropdownToggleEl)
})
</script>
综上,Bootstrap 5的下拉菜单组件是非常实用的交互组件之一,开发者可以根据业务需求自定义下拉菜单的样式和布局。