页面加载后5秒是否可以隐藏元素?我知道有a jQuery solution。CSS 5秒后自动隐藏元素
我想做同样的事情,但希望能得到与CSS转换相同的结果。
任何创新的想法?还是我问超出css过渡/动画的限制?
页面加载后5秒是否可以隐藏元素?我知道有a jQuery solution。CSS 5秒后自动隐藏元素
我想做同样的事情,但希望能得到与CSS转换相同的结果。
任何创新的想法?还是我问超出css过渡/动画的限制?
但你不能做到这一点你可能马上会想到的办法,因为你不能动画或创建周围的特性的过渡否则你依靠(如display
,或改变尺寸和设置overflow:hidden
)在为了正确隐藏元素并防止它占据可见空间。
因此,请为有问题的元素创建动画,并在5秒钟后简单地切换visibility:hidden;
,同时将高度和宽度设置为零,以防止元素仍占用DOM流中的空间。
CSS
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;
}
}
HTML
<div id='hideMe'>Wait for it...</div>
当然你也可以,只要使用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);
感谢您的回答,但我只是不想使用JavaScript。如果我希望使用JavaScript或jQuery,我可能会使用我在我的问题中包含的jQuery解决方案。不管怎么说,还是要谢谢你。 – Alfred
请记住,[jQuery甚至不是远程Javascript的同义词](http://meta.stackexchange.com/a/19492/219504)。你问过一个不使用jQuery内建转换的解决方案,我给你一个纯CSS转换和一行通用Javascript的答案。你从来没有要求没有JS的解决方案,答案就这样完成了。 –
投票只是为了让人们意识到,jQuery!= JS – msaad
为什么不试试fadeOut?
$(document).ready(function() {
$('#plsme').fadeOut(5000); // 5 seconds x 1000 milisec = 5000 milisec
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id='plsme'>Loading... Please Wait</div>
淡出(使用Javascript纯):
问题是关于使用CSS,而不是JavaScript! – Mushfiq
从@ 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;}
}
<div>
<div id='container'>
<div id='hideMe'>Wait for it...</div>
</div>
</div>
使剩余的0.5秒到动画的不透明度属性。 只要确保在改变长度的情况下进行数学运算,在这种情况下,5秒钟的90%会让我们在0.5秒内为不透明度设置动画。
我喜欢这个解决方案。有没有一种方法可以将它结合起来,然后淡出并从DOM中移除它? –
这是可能的,但我不会推荐这样做。使用jQuery或纯JS的。 –
这里是一个例子:http://jsbin.com/xofaq/1/edit?html,css,output 我知道这里已经有了答案,但我也是这么做的,孩子们把我带走了一段时间:) – balexandre
感谢@ balexandre,+1的评论。 – Alfred