View Transition API

Die View Transition API bietet einen Mechanismus zur einfachen Erstellung von animierten Übergängen zwischen verschiedenen Ansichten einer Website. Dies umfasst das Animieren zwischen DOM-Zuständen in einer Single-Page-App (SPA) und das Animieren der Navigation zwischen Dokumenten in einer Multi-Page-App (MPA).

Konzepte und Verwendung

Ansichtsübergänge sind eine beliebte Designwahl, um die kognitive Belastung der Benutzer zu reduzieren, ihnen den Kontext beizubehalten und die wahrgenommene Latenzzeit beim Bewegen zwischen Zuständen oder Ansichten einer Anwendung zu verringern.

Allerdings war das Erstellen von Ansichtsübergängen im Web historisch gesehen schwierig:

  • Übergänge zwischen Zuständen in Single-Page-Apps (SPAs) erfordern häufig das Schreiben umfangreicher CSS- und JavaScript-Codes, um:
    • Das Laden und Positionieren der alten und neuen Inhalte zu handhaben.
    • Die alten und neuen Zustände zu animieren, um den Übergang zu schaffen.
    • Unbeabsichtigte Benutzerinteraktionen mit dem alten Inhalt zu verhindern, die Probleme verursachen könnten.
    • Den alten Inhalt zu entfernen, sobald der Übergang abgeschlossen ist. Barrierefreiheitsprobleme wie der Verlust der Leseposition, Verwirrung durch fehlenden Fokus und merkwürdiges Verhalten bei Live-Regionen-Ankündigungen können ebenfalls auftreten, wenn sowohl der neue als auch der alte Inhalt gleichzeitig im DOM vorhanden sind.
  • Übergänge zwischen Dokumenten (d.h. Navigieren zwischen verschiedenen Seiten in MPAs) waren historisch gesehen unmöglich.

Die View Transition API bietet eine einfache Möglichkeit, die erforderlichen Ansichtsänderungen und Übergangsanimationen für beide oben genannten Anwendungsfälle zu verwalten.

Das Erstellen eines Ansichtsübergangs, der die Standardübergangsanimationen des Browsers verwendet, ist sehr schnell zu erledigen, und es gibt Funktionen, die Sie sowohl die Übergangsanimation anpassen als auch den Ansichtsübergang selbst manipulieren lassen (z.B. Umstände festlegen, unter denen die Animation übersprungen wird) für sowohl SPA- als auch MPA-Ansichtsübergänge.

Weitere Informationen finden Sie unter Using the View Transition API.

Schnittstellen

ViewTransition

Repräsentiert einen Ansichtsübergang und bietet Funktionen, um auf das Erreichen verschiedener Zustände des Übergangs zu reagieren (z.B. bereit für die Animation oder Animation abgeschlossen) oder den Übergang ganz zu überspringen.

Erweiterungen zu anderen Schnittstellen

Document.startViewTransition()

Startet einen neuen Ansichtsübergang innerhalb desselben Dokuments (SPA) und gibt ein ViewTransition-Objekt zurück, um diesen darzustellen.

PageRevealEvent

Das Ereignisobjekt für das pagereveal-Ereignis. Während einer Navigation zwischen Dokumenten ermöglicht es Ihnen, den zugehörigen Ansichtsübergang zu manipulieren (bietet Zugriff auf das relevante ViewTransition-Objekt) von dem Dokument aus, zu dem navigiert wird, falls ein Ansichtsübergang durch die Navigation ausgelöst wurde.

PageSwapEvent

Das Ereignisobjekt für das pageswap-Ereignis. Während einer Navigation zwischen Dokumenten ermöglicht es Ihnen, den zugehörigen Ansichtsübergang zu manipulieren (bietet Zugriff auf das relevante ViewTransition-Objekt) von dem Dokument aus, von dem navigiert wird, falls ein Ansichtsübergang durch die Navigation ausgelöst wurde. Es bietet auch Zugriff auf Informationen über den Navigationstyp und die aktuellen sowie die Ziel-Dokumenthistorik-Einträge.

Das Window pagereveal-Ereignis

Wird ausgelöst, wenn ein Dokument erstmals dargestellt wird, entweder beim Laden eines neuen Dokuments aus dem Netzwerk oder beim Aktivieren eines Dokuments (entweder aus dem back/forward cache (bfcache) oder prerender).

Das Window pageswap-Ereignis

Wird ausgelöst, wenn ein Dokument aufgrund einer Navigation entladen wird.

HTML-Erweiterungen

Identifiziert die wichtigsten Inhalte des zugehörigen Dokuments für die anfängliche Ansicht der Seite durch den Benutzer. Die Dokumentdarstellung wird blockiert, bis die kritischen Inhalte analysiert wurden, um einen konsistenten ersten Anstrich — und somit einen Ansichtsübergang — über alle unterstützenden Browser hinweg zu gewährleisten.

CSS-Erweiterungen

At-Rules

@view-transition

Im Falle einer Navigation zwischen Dokumenten wird @view-transition verwendet, um die aktuellen und Ziel-Dokumente für einen Ansichtsübergang zu optieren.

Eigenschaften

view-transition-name

Versorgt das ausgewählte Element mit einem separaten identifizierenden Namen und führt es in einen separaten Ansichtsübergang vom Hauptansichtsübergang — oder keinen Ansichtsübergang, wenn der Wert none angegeben ist.

Pseudo-Elemente

::view-transition

Der Wurzelpunkt der Ansichtsübergangsüberlagerung, die alle Ansichtsübergänge enthält und über allen anderen Seiteninhalten liegt.

::view-transition-group()

Der Ausgangspunkt eines einzelnen Ansichtsübergangs.

::view-transition-image-pair()

Der Container für die alten und neuen Ansichten eines Ansichtsübergangs — vor und nach dem Übergang.

::view-transition-old()

Eine statische Momentaufnahme der alten Ansicht vor dem Übergang.

::view-transition-new()

Eine Live-Darstellung der neuen Ansicht nach dem Übergang.

Beispiele

Spezifikationen

Specification
CSS View Transitions Module Level 1

Browser-Kompatibilität

api.Document.startViewTransition

BCD tables only load in the browser

css.at-rules.view-transition

BCD tables only load in the browser

Siehe auch