答案 0 :(得分:69)
但是你不能以你可能立刻想到的方式去做,因为你无法动画或围绕你原本依赖的属性创建过渡(例如display
,或者更改尺寸和设置为{ {1}})以便正确隐藏元素并防止它占用可见空间。
因此,为相关元素创建动画,并在5秒后简单地切换overflow:hidden
,同时还将高度和宽度设置为零,以防止元素仍然占用DOM流中的空间。
CSS
visibility:hidden;
HTML
html, body {
height:100%;
width:100%;
margin:0;
padding:0;
}
#hideMe {
-moz-animation: cssAnimation 0s ease-in 5s forwards;
/* Firefox */
-webkit-animation: cssAnimation 0s ease-in 5s forwards;
/* Safari and Chrome */
-o-animation: cssAnimation 0s ease-in 5s forwards;
/* Opera */
animation: cssAnimation 0s ease-in 5s forwards;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@keyframes cssAnimation {
to {
width:0;
height:0;
overflow:hidden;
}
}
@-webkit-keyframes cssAnimation {
to {
width:0;
height:0;
visibility:hidden;
}
}
答案 1 :(得分:5)
当然可以,只需使用setTimeout
来更改类或其他内容即可触发转换。
HTML:
<p id="aap">OHAI!</p>
CSS:
p {
opacity:1;
transition:opacity 500ms;
}
p.waa {
opacity:0;
}
JS在加载或DOMContentReady上运行:
setTimeout(function(){
document.getElementById('aap').className = 'waa';
}, 5000);
答案 2 :(得分:5)
根据@ SW4的答案,您最后还可以添加一些动画。
body > div{
border:1px solid grey;
}
html, body, #container {
height:100%;
width:100%;
margin:0;
padding:0;
}
#container {
overflow:hidden;
position:relative;
}
#hideMe {
-webkit-animation: cssAnimation 5s forwards;
animation: cssAnimation 5s forwards;
}
@keyframes cssAnimation {
0% {opacity: 1;}
90% {opacity: 1;}
100% {opacity: 0;}
}
@-webkit-keyframes cssAnimation {
0% {opacity: 1;}
90% {opacity: 1;}
100% {opacity: 0;}
}
&#13;
<div>
<div id='container'>
<div id='hideMe'>Wait for it...</div>
</div>
</div>
&#13;
使剩余的0.5秒为opacity属性设置动画。 如果您正在改变长度,请确保进行数学运算,在这种情况下,5秒钟的90%会让我们在0.5秒内为不透明度设置动画。
答案 3 :(得分:1)
为什么不尝试 fadeOut ?
$(document).ready(function() {
$('#plsme').fadeOut(5000); // 5 seconds x 1000 milisec = 5000 milisec
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id='plsme'>Loading... Please Wait</div>
&#13;
fadeOut(Javascript Pure):