动画下拉菜单 Bootstrap 4
Posted
技术标签:
【中文标题】动画下拉菜单 Bootstrap 4【英文标题】:Animate Dropdown Menu Bootstrap 4 【发布时间】:2018-10-05 22:06:19 【问题描述】:下拉菜单在 bootstrap (4.0) 中的原生方式不是动画的。如何让它像折叠时导航栏一样“滑动”打开?
值得注意的是,下拉菜单位于导航栏中。见下文代码; https://www.codeply.com/go/JKj5onR3ug
<nav class="navbar navbar-dark bg-dark">
<a class="navbar-brand" href="#">Never expand</a>
<button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#navbarsExample01" aria-controls="navbarsExample01" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbarsExample01" style="">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<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>
</li>
</ul>
</div>
</nav>
【问题讨论】:
【参考方案1】:您必须为下拉菜单覆盖 CSS。使用这个 css。
.dropdown-menu
display: block;
.navbar-nav .dropdown-menu
max-height: 0;
overflow: hidden;
transition: max-height 0.5s;
.navbar-nav .dropdown-menu.show
max-height: 500px;
【讨论】:
【参考方案2】:最简单的方法是使用“折叠”而不是“下拉”来切换它。然后你只需要一点 CSS 来确保它在collapsing
动画处于活动状态时显示。另请注意,position-relative
设置在 dropdown-menu
上。
.dropdown-menu.collapsing
display:block;
Try it on Codeply
"借助 Popper.js 定位下拉菜单(除非 它们包含在导航栏中)。”
因为dropdowns inside the Navbar are positioned differently 这是另一个使用标准按钮下拉菜单的示例:https://www.codeply.com/go/vJhVEh9Okd
另一种方法是使用Bootstrap 3.x dropdown animation techniques 之一。
【讨论】:
效果很好,但为什么需要“位置相对”类?没有它似乎可以工作? 感谢@Zim 的示例和想法,它可以工作,但我发现我可以在那里修复一些问题: - 扩展的导航栏上的下拉菜单无法正常工作。 - 动画有点破,因为下拉有垂直填充。这是固定示例:codeply.com/go/09IISWbMoa【参考方案3】:以下是我使用 transform: scale
使用纯 css 制作下拉动画的方法:
SCSS 样式
.dropdown
.dropdown-menu
transition: all 0.5s;
overflow: hidden;
transform-origin: top center;
transform: scale(1,0);
display: block;
&:hover
.dropdown-menu
transform: scale(1);
在Codepen查看演示
【讨论】:
【参考方案4】:试试这段代码:)
.dropdown-menu
float: none;
position: static;
padding: 0;
display: block;
&.show
max-height: 500px;
.dropdown-menu
max-height: 0;
overflow: hidden;
transition: max-height 0.5s;
【讨论】:
以上是关于动画下拉菜单 Bootstrap 4的主要内容,如果未能解决你的问题,请参考以下文章