[英]How to smoothly expand element
通过单击“ #sidebarnav>li
”:
1)它的第二个子元素- <ul>
元素将展开,并且其类在"collapse"
和"collapse in"
之间切换
2) "#sidebarnav>li"
获得“活动”类。
3) <a>
和<ul>
标记中的“ aria-expanded”属性变为“ true”
我想在单击其父元素时平滑地扩展ul元素,但无法实现。 试图添加过渡:类“ collapse in
”中height 500ms ease-in-out
样式,但不起作用。 那么如何使其工作呢? 把它放在小提琴上
<!--language: lang-html-->
<nav class="sidebar-nav">
<ul class="in" id="sidebarnav">
<li>
<a class="has-arrow waves-effect waves-dark" aria-expanded="false" href="#">
<span class="hide-menu">Dashboard</span>
</a>
<ul class="collapse" aria-expanded="false">
<li><a href="index.html">Minimal </a></li>
<li><a href="index2.html">Analytical</a></li>
<li><a href="index3.html">Demographical</a></li>
<li><a href="index4.html">Modern</a></li>
</ul>
</li>
</ul>
</nav>
不幸的是,您无法使用百分比值来设置height
动画,因此最好的方法是使用transform
。
如果需要“扩展”效果,则必须使用JavaScript。 这是使用transform
:
将ul
放在容器中:
<div class="collapse-container">
<ul class="collapse" aria-expanded="false">
[...]
</ul>
</div>
隐藏容器上的溢出,以便ul
不重叠:
.collapse-container {
overflow: hidden;
}
在.in
上对translateY
进行动画处理:
.collapse {
transition: transform 250ms ease-in-out;
transform: translateY(-100%);
}
.collapse.in {
transform: translateY(0%);
}
这是一个正在工作的小提琴。 (我更改了JS以使其与容器元素一起使用)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.