私のアプリでは、ページ上の要素の不透明度を次のようにアニメーション化しています。
.s {
transition-property: opacity;
transition-duration: 250ms;
}
(もちろん、ベンダー固有のバージョンで)。その後
.s.hidden {
opacity: 0;
}
hidden
そのため、クラスが割り当てられるとアニメーションが開始されます。問題は、不透明度がゼロの要素でマウスイベントがまだ検出されていることです。これは望ましくないため、トランジションが終了した後visibility
にtohidden
またはdisplay
toに設定する必要があります。私は次のようなことができることを願っています:none
.s {
transition-property: opacity, visibility;
transition-duration: 250ms;
transition-delay: 0, 250ms;
}
その後
.s.hidden {
opacity: 0;
visibility: hidden;
}
CSS トランジション機構を使用してこれを簡単に行うことができます。私が知る限り、visibility
アニメーション化できないプロパティであるため、それは機能しません。しかし、d3 などの他のトランジション フレームワークは、トランジションの開始時または終了時に単純に値を設定するという明白な方法で、アニメーション化できないプロパティを処理します。
私が思いついた最善の方法は、transitionend
イベント (および などのブラウザー固有のバリアントoTransitionEnd
) を使用して遷移の終わりをキャッチし、visibility
その時点で設定することですが、もっと簡単な方法があるかどうか疑問に思っています。できれば純粋に CSS に固執します。または、私の質問のタイトルが示すように、アニメーション化できないプロパティはそれだけですか?