ページの読み込みから5秒後に要素を非表示にすることはできますか? jQueryソリューション があることを知っています。
私はまったく同じことをしたいのですが、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>
@ 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秒かかります。
もちろん、setTimeout
を使用してクラスまたは何かを変更し、遷移をトリガーするだけです。
HTML:
<p id="aap">OHAI!</p>
CSS:
p {
opacity:1;
transition:opacity 500ms;
}
p.waa {
opacity:0;
}
ロードまたはDOMContentReadyで実行するJS:
setTimeout(function(){
document.getElementById('aap').className = 'waa';
}, 5000);
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>
fadeOut(Javascript Pure):