Die Sichtbarkeit ist eine animierbare Eigenschaft gemäß der Spezifikation, aber Übergänge bei der Sichtbarkeit funktionieren nicht wie erwartet allmählich. Stattdessen verzögern Übergänge bei der Sichtbarkeit das Ausblenden eines Elements. Andererseits funktioniert es sofort, ein Element sichtbar zu machen. Dies ist so, wie es durch die Spezifikation definiert ist (im Fall der Standard-Timing-Funktion) und wie es in den Browsern implementiert ist.
Dies ist auch ein nützliches Verhalten, da man sich tatsächlich verschiedene visuelle Effekte vorstellen kann, um ein Element zu verbergen. Das Ausblenden eines Elements ist nur eine Art von visuellem Effekt, der mithilfe der Deckkraft festgelegt wird. Andere visuelle Effekte können das Element mithilfe der Transformationseigenschaft entfernen. Siehe auch http://taccgl.org/blog/css-transition-visibility.html
Es ist oft nützlich, den Opazitätsübergang mit einem Sichtbarkeitsübergang zu kombinieren! Obwohl die Deckkraft das Richtige zu tun scheint, erhalten vollständig transparente Elemente (mit der Deckkraft: 0) weiterhin Mausereignisse. So reagieren beispielsweise Links auf ein Element, das nur mit einem Deckkraftübergang ausgeblendet wurde, immer noch auf Klicks (obwohl nicht sichtbar), und Links hinter dem ausgeblendeten Element funktionieren nicht (obwohl sie durch das ausgeblendete Element sichtbar sind). Siehe http://taccgl.org/blog/css-transition-opacity-for-fade-effects.html .
Dieses seltsame Verhalten kann vermieden werden, indem nur beide Übergänge verwendet werden, der Übergang zur Sichtbarkeit und der Übergang zur Deckkraft. Dabei wird die Sichtbarkeitseigenschaft verwendet, um Mausereignisse für das Element zu deaktivieren, während die Deckkraft für den visuellen Effekt verwendet wird. Es muss jedoch darauf geachtet werden, das Element nicht zu verbergen, während der visuelle Effekt abgespielt wird, der sonst nicht sichtbar wäre. Hier wird die spezielle Semantik des Sichtbarkeitsübergangs nützlich. Beim Ausblenden eines Elements bleibt das Element während der Wiedergabe des visuellen Effekts sichtbar und wird anschließend ausgeblendet. Wenn Sie dagegen ein Element anzeigen, macht der Sichtbarkeitsübergang das Element sofort sichtbar, dh bevor der visuelle Effekt abgespielt wird.
opacity
mehrere Werte zwischen0
und annehmen kann1
, währendvisibility
nurvisible
oderhidden
(keine Zwischenwerte) sein können