作業中のサイトの新しいオーバーレイ画面テクニックに取り組んでいます。JavaScriptアニメーションよりも簡単で高速なため、アニメーションをCSSに活用したいと思います。簡単なことをしていますが、ChromeやSafariなどのWebkitベースのブラウザで問題が発生しています。
これは私が使用しているコードです:
body:after {
content: '';
width: 100%;
height: 100%;
background-color: #000;
position: fixed;
top: 0;
left: 0;
z-index: -1;
transition-duration: .5s;
-webkit-transition-duration: .5s;
opacity: 0;
}
body.dimmed:after {
z-index: 9999;
opacity: .7;
}
ご覧のとおり、after疑似要素を使用し、bodyクラスに基づいて、表示または非表示にアニメーション化します。Firefoxではうまく機能しますが、ChromeやSafariでは機能しません。これらのブラウザでは、アニメーションは発生せず、変化は瞬時に発生しますが、これは私が望んでいることではありません。疑似要素ではなく、同じCSSをボディに適用すると、アニメーションが発生します。
body {
content: '';
width: 100%;
height: 100%;
background-color: #000;
position: fixed;
top: 0;
left: 0;
z-index: -1;
transition-duration: .5s;
-webkit-transition-duration: .5s;
opacity: 0;
}
body.dimmed {
z-index: 9999;
opacity: .7;
}
これにより、トランジションはChromeの疑似要素には適用されないと思います。これはバグとして報告する必要がありますか?