📄displayプロパティでアニメーション
displayプロパティは離散値なので普通はアニメーションできない。
.element { transition: opacity 1s;}
.element.hidden { opacity: 0; display: none;}上のようにしてhiddenクラスをトグルしてもアニメーションしない。
しかし以下のようにするとアニメーションする。
.element { transition: opacity 1s, display 1s allow-discrete;
@starting-style { opacity: 0; }}
.element.hidden { opacity: 0; display: none;}表示から非表示のアニメーションは transition でdisplayに対して設定している allow-discrete が影響する。
これは離散値のアニメーションが有効になる設定。
display: none と content-visibility: hidden だけ特別で、アニメーションが終わってから非表示になる。
それ以外のプロパティは50%アニメーションしてから切り替わる。
非表示から表示のアニメーションは @starting-style が影響する。
これはレンダリングされた瞬間の設定。
したがって display: none が外れた瞬間は opacity: 0 から始まる。
参考