【发布时间】:2021-01-08 01:06:03
【问题描述】:
我有一个菜单,我想用 javascript 淡入。我希望它从display: none 和opacity: 0 过渡到display: flex 和opacity: 1。但是当我使用 javascript 将 opacity 设置为 1 时,它不会转换,而是突然捕捉到 1,而如果我没有将 display 设置为 none,它会优雅地转换。我想使用display: none,因为在菜单出现之前,我需要能够在后台的画布上捕捉鼠标移动。我做了一个codepen来演示这个here。
注意:我也希望能够使用 Javascript 淡出
我也看过this question,但第一个建议的答案无法淡出。
谢谢!
text = document.getElementById("text");
window.setTimeout((function () {
text.style.display = "flex";
text.style.opacity = "1";
}), 2000)
#text {
display: none;
opacity: 0;
width: 500px;
height: 100px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
font-size: 3rem;
color: white;
align-items: center;
justify-content: center;
transition-duration: 2s;
background-color: black;
border-radius: 5px;
}
<div id="text">Testing Testing 123</div>
【问题讨论】:
-
浏览器将无法识别
display: none元素的属性。过渡将简单地停止。您可能想查看visibility或仅使用不透明度,然后在动画完成后使用display: none。 -
我在后台有一个画布,需要在菜单不可见时主动获取用户输入。我相信能见度:没有人会妨碍它。
标签: javascript css css-transitions