使用JavaScript来改变一个带有
为什么会这样呢?
注意:我没有在display属性上使用过渡,也不是在寻找解决方法。
transition: opacity 1s
属性的元素的不透明度,你期望这个过渡效果需要一秒钟才能完成,这也确实在这里看到了:
onload = e => {
var p = document.getElementsByTagName("p")[0];
p.style.opacity = 1;
};
p {
opacity: 0;
transition: opacity 1s;
}
<p>
Lorem ipsum...
</p>
However, if the element has display: none
and you first change it to display: initial
(in order to see it) before changing the opacity the transition no longer works, which you can see here:
onload = e => {
var p = document.getElementsByTagName("p")[0];
p.style.display = "initial";
p.style.opacity = 1;
};
p {
display: none;
opacity: 0;
transition: opacity 1s;
}
<p>
Lorem ipsum...
</p>
注意:我没有在display属性上使用过渡,也不是在寻找解决方法。
display: none;
的使用场景是什么?当opacity
设为零时,元素已经不可见了。 - Randy Casburn