Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Dokument: Methode startViewTransition()

Baseline 2025
Neu verfügbar

Seit Oktober 2025 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Die Methode startViewTransition() der Schnittstelle Document startet eine neue, auf das Dokument beschränkte View Transition innerhalb desselben Dokuments (SPA) und gibt ein ViewTransition-Objekt zurück, das diese repräsentiert.

Die Abfolge der Schritte beim Aufruf von startViewTransition() wird im Abschnitt Der Ablauf einer View Transition erläutert.

Syntax

js
startViewTransition()
startViewTransition(updateCallback)
startViewTransition(options)

Parameter

updateCallback Optional

Eine Callback-Funktion, die aufgerufen wird, um das DOM während der SPA-View-Transition zu aktualisieren. Sie gibt ein Promise zurück. Der Callback wird aufgerufen, nachdem die API einen Schnappschuss der aktuellen Seite erstellt hat. Wenn das vom Callback zurückgegebene Promise erfüllt wird, beginnt die View Transition im nächsten Frame. Wenn es zurückgewiesen wird, wird die Transition abgebrochen.

options Optional

Ein Objekt mit Optionen zur Konfiguration der View Transition. Es kann die folgenden Eigenschaften enthalten:

update Optional

Dieselbe oben beschriebene updateCallback-Funktion. Der Standardwert ist null.

types Optional

Ein Array von Zeichenfolgen, die die auf die View Transition angewendeten Typen angeben. View-Transition-Typen ermöglichen es, CSS-Stile oder JavaScript-Logik gezielt anhand des jeweiligen Transition-Typs anzuwenden. Der Standardwert ist ein leeres Array.

Rückgabewert

Eine Instanz des Objekts ViewTransition.

Beispiele

Eine Liste vollständiger Beispiele finden Sie unter View Transition API > Beispiele.

Grundlegende Verwendung

Bei dieser View Transition innerhalb desselben Dokuments prüfen wir, ob der Browser View Transitions unterstützt. Falls nicht, setzen wir die Hintergrundfarbe mit einer Ausweichmethode, die sofort angewendet wird. Andernfalls können wir document.startViewTransition() aufrufen und dabei die in CSS definierten Animationsregeln nutzen.

html
<main>
  <section></section>
  <button id="change-color">Change color</button>
</main>

Mithilfe des Pseudoelements ::view-transition-group setzen wir die animation-duration auf 2 Sekunden.

css
html {
  --bg: indigo;
}
main {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
section {
  background-color: var(--bg);
  height: 60px;
  border-radius: 5px;
}
::view-transition-group(root) {
  animation-duration: 2s;
}
js
const colors = ["darkred", "darkslateblue", "darkgreen"];
const colBlock = document.querySelector("section");
let count = 0;
const updateColor = () => {
  colBlock.style = `--bg: ${colors[count]}`;
  count = count !== colors.length - 1 ? ++count : 0;
};
const changeColor = () => {
  // Fallback for browsers that don't support View Transitions:
  if (!document.startViewTransition) {
    updateColor();
    return;
  }

  // With View Transitions:
  const transition = document.startViewTransition(() => {
    updateColor();
  });
};
const changeColorButton = document.querySelector("#change-color");
changeColorButton.addEventListener("click", changeColor);
changeColorButton.addEventListener("keypress", changeColor);

Wenn View Transitions unterstützt werden, wechselt die Farbe beim Klicken auf die Schaltfläche innerhalb von 2 Sekunden von einer Farbe zur anderen. Andernfalls wird die Hintergrundfarbe ohne Animation mit einer Ausweichmethode gesetzt.

Spezifikationen

Spezifikation
CSS View Transitions Module Level 1
# dom-document-startviewtransition
CSS View Transitions Module Level 2
# dom-document-startviewtransition

Browser-Kompatibilität

Siehe auch