我正在尝试在属性上animate
使用 CSS 的页面元素。淡出可以正常工作,但淡入不能。我究竟做错了什么?transition
opacity
有些事实真的很奇怪:
- 如果不使用
.no-display
类,一切都会按预期工作(但我应该使用它)。 - 在浏览器控制台中重放函数的命令确实按预期工作(但函数没有)。
编码:
HTML
<p><a href="javascript:fadeIn()">Fade in</a></p>
<p><a href="javascript:fadeOut()">Fade out</a></p>
<div class="no-display invisible" id="square"></div>
CSS
.no-display {
display: none;
}
.invisible {
opacity: 0;
}
#square {
width: 500px;
height: 500px;
background-color: red;
border: 1px solid black;
-webkit-transition: opacity 2s ease;
-moz-transition: opacity 2s ease;
-ms-transition: opacity 2s ease;
-o-transition: opacity 2s ease;
transition: opacity 2s ease;
}
JavaScript
function fadeIn() {
square.classList.remove("no-display");
square.classList.remove("invisible");
}
function fadeOut() {
square.classList.add("invisible");
setTimeout(function() { square.classList.add("no-display"); }, 2000 );
}
或者:http: //jsfiddle.net/V2Sar/6/。
请注意,我不能使用任何框架,例如 jQuery。我只需要使用纯 JavaScript。