【发布时间】:2018-11-14 20:35:01
【问题描述】:
我一直在尝试为这段代码制作动画,我知道我无法制作动画:display:none; , 所以我尝试改变ul的高度,但是没有用...
请帮忙,我...应该很简单,但我想不通...
感谢您的每一个回复! :)
https://jsfiddle.net/qwv2jLpd/1/
document.querySelector(".menu p").onclick = function() {
let seznam = document.querySelector(".menu ul");
if (seznam.classList.contains('menu_invisible')) {
seznam.classList.remove('menu_invisible');
} else {
seznam.classList.add('menu_invisible');
}
}
.menu_invisible {
display: none;
}
.menu {
cursor: pointer;
}
<div class="menu">
<p>>>Show drop down menu
<<</p>
<ul style="transition: all 500ms ease;" class="menu_invisible">
<li><a href="#">whatever</a></li>
<li><a href="#">I don't know</a></li>
<li><a href="#">Why it</a></li>
<li><a href="#">doesn't</a></li>
<li><a href="k#">work?</a></li>
<li><a href="#">Help please...</a></li>
</ul>
</div>
【问题讨论】:
-
你说你试图操纵高度并且知道你不能为
display: none;制作动画,但是我看到的唯一尝试是你试图在display: none上做transition: all-您能否分享一些涉及height的其他非工作尝试? -
为了设置高度动画,您需要使用
max-height和max-height值都需要明确(IE 你不能从max-height:0;动画到max-height:auto;) -
其他尝试包括:将ul的高度设置为0,将ul的max-height设置为0,将单个li的高度设置为0;我也试图玩不透明度......这些东西都没有真正起作用......我能够为不透明度选项设置动画,但菜单仍然占用空间...... at is 是可点击的......(我没有想要...)
标签: javascript html css transition