View Transition API

Die View Transition API bietet ein Mechanismus, um einfach animierte Übergänge zwischen verschiedenen Ansichten einer Website zu erstellen. 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 zu helfen, sich im Kontext zu halten, und wahrgenommene Ladezeiten zu verringern, während sie sich zwischen Zuständen oder Ansichten einer Anwendung bewegen.

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

  • Übergänge zwischen Zuständen in Single-Page-Apps (SPAs) erfordern das Schreiben von bedeutendem CSS und JavaScript, um:
    • Das Laden und Positionieren der alten und neuen Inhalte zu handhaben.
    • Die alten und neuen Zustände zu animieren, um den Übergang zu erstellen.
    • Zu verhindern, dass versehentliche Benutzerinteraktionen mit dem alten Inhalt Probleme verursachen.
    • Den alten Inhalt zu entfernen, sobald der Übergang abgeschlossen ist. Barrierefreiheitsprobleme wie Verlust der Leseposition, Fokusverwirrungen und seltsames Verhalten von Live-Region-Ankündigungen können ebenfalls auftreten, wenn der neue und der alte Inhalt gleichzeitig im DOM vorhanden sind.
  • Dokumentenübergreifende Ansichtsübergänge (d.h. Navigationen 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 handhaben.

Das Erstellen eines Ansichtsübergangs, der die Standard-Übergangsanimationen des Browsers verwendet, ist sehr schnell durchzuführen, und es gibt Funktionen, die es Ihnen ermöglichen, sowohl die Übergangsanimation anzupassen als auch den Ansichtsübergang selbst zu manipulieren (zum Beispiel die Umstände anzugeben, unter denen die Animation übersprungen wird), für sowohl SPA- als auch MPA-Ansichtsübergänge.

Siehe Verwendung der View Transition API für mehr Informationen.

Schnittstellen

ViewTransition

Repräsentiert einen Ansichtsübergang und bietet Funktionalität, um auf das Erreichen verschiedener Zustände des Übergangs zu reagieren (z. B. bereit, die Animation auszuführen, oder Animation abgeschlossen) oder den Übergang vollständig zu überspringen.

Erweiterungen für andere Schnittstellen

Document.startViewTransition()

Startet einen neuen gleich-Dokument (SPA) Ansichtsübergang und gibt ein ViewTransition-Objekt zurück, um ihn darzustellen.

PageRevealEvent

Das Ereignisobjekt für das pagereveal-Ereignis. Während einer dokumentenübergreifenden Navigation erlaubt es Ihnen, den zugehörigen Ansichtsübergang zu manipulieren (indem auf das relevante ViewTransition-Objekt zugegriffen wird) aus dem Dokument heraus, 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 dokumentenübergreifenden Navigation erlaubt es Ihnen, den zugehörigen Ansichtsübergang zu manipulieren (indem auf das relevante ViewTransition-Objekt zugegriffen wird) aus dem Dokument heraus, von dem navigiert wird, falls ein Ansichtsübergang durch die Navigation ausgelöst wurde. Es bietet auch Zugriff auf Informationen über den Navigationstyp sowie die aktuellen und Ziel-Dokumenthistorieeinträge.

Das Window pagereveal-Ereignis

Wird ausgelöst, wenn ein Dokument erstmals gerendert wird, sei es 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 werden soll.

HTML-Erweiterungen

Identifiziert den kritischsten Inhalt im zugehörigen Dokument für die anfängliche Ansicht der Seite des Benutzers. Das Rendern des Dokuments wird blockiert, bis der kritische Inhalt analysiert wurde, um eine konsistente erste Darstellung — und daher einen Ansichtsübergang — in allen unterstützenden Browsern zu gewährleisten.

CSS-Erweiterungen

At-Rules

@view-transition

Im Falle einer dokumentenübergreifenden Navigation wird @view-transition verwendet, um das aktuelle und das Zieldokument dafür anzumelden, einen Ansichtsübergang zu durchlaufen.

Eigenschaften

view-transition-name

Gibt den Ansichtsübergang-Snapshot an, an dem ausgewählte Elemente teilnehmen, wodurch ein Element separat vom Rest der Seite während eines Ansichtsübergangs animiert werden kann.

view-transition-class

Bietet eine zusätzliche Methode zum Stylen ausgewählter Elemente, die einen view-transition-name haben.

Pseudo-Elemente

::view-transition

Die Wurzel des Ansichtsübergangs-Overlays, das alle Ansichtsübergänge enthält und über dem restlichen Seiteninhalt liegt.

::view-transition-group()

Die Wurzel 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()

Ein statischer Schnappschuss 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

css.at-rules.view-transition

Siehe auch