可視性は仕様に従ってアニメート可能なプロパティですが、予想どおり、可視性の遷移は徐々に機能しません。代わりに、要素を非表示にする表示遅延で遷移します。一方、要素を表示するとすぐに機能します。これは、仕様で定義されているとおり(デフォルトのタイミング関数の場合)、ブラウザに実装されているためです。
要素を非表示にするさまざまな視覚効果を実際に想像できるため、これも便利な動作です。要素のフェードアウトは、不透明度を使用して指定される視覚効果の一種にすぎません。その他の視覚効果は、たとえば、transformプロパティを使用して要素を移動する可能性があります。http://taccgl.org/blog/css-transition-visibility.htmlも参照してください。
多くの場合、不透明度の遷移と可視性の遷移を組み合わせると便利です。不透明度は正しいように見えますが、完全に透明な要素(不透明度:0)は引き続きマウスイベントを受け取ります。したがって、たとえば不透明遷移のみでフェードアウトされた要素のリンクは、クリックには応答しますが(表示されません)、フェードされた要素の背後のリンクは機能しません(フェードされた要素を通して表示されます)。http://taccgl.org/blog/css-transition-opacity-for-fade-effects.htmlを参照してください。
この奇妙な動作は、両方のトランジション、可視性のトランジションと不透明度のトランジションを使用することで回避できます。これにより、visibilityプロパティを使用して要素のマウスイベントを無効にし、視覚効果に不透明度を使用します。ただし、視覚効果の再生中に要素を非表示にしないように注意する必要があります。ここでは、可視性遷移の特別なセマンティクスが便利になります。要素を非表示にすると、要素は視覚効果の再生中は表示されたままになり、後で非表示になります。一方、要素を表示する場合、可視性の遷移により、要素がすぐに、つまり視覚効果を再生する前に表示されます。
opacity
ます。これは0
、との間でいくつかの値を取ることができる1
一方で、または(中間値ではない)visibility
のみである可能性があるためですvisible
hidden