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

View in English Always switch to English

Element: contentvisibilityautostatechange-Ereignis

Baseline 2024
Neu verfügbar

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

Das contentvisibilityautostatechange-Ereignis wird für jedes Element ausgelöst, für das content-visibility: auto festgelegt ist, wenn es beginnt oder aufhört, für den Benutzer relevant zu sein, und seine Inhalte übersprungen werden beziehungsweise nicht mehr übersprungen werden.

Solange das Element nicht relevant ist (zwischen den Ereignissen für Beginn und Ende), überspringt der User Agent das Rendering des Elements, einschließlich Layout und Zeichnen. Dies kann die Rendering-Geschwindigkeit der Seite erheblich verbessern. Das contentvisibilityautostatechange-Ereignis ermöglicht es dem Code einer Anwendung außerdem, Rendering-Prozesse (z. B. das Zeichnen auf einem <canvas>) zu starten oder zu stoppen, wenn sie nicht benötigt werden, und so Rechenleistung zu sparen.

Beachten Sie, dass die Inhalte eines Elements auch dann semantisch relevant bleiben, wenn das Element nicht sichtbar ist (z. B. für Benutzer unterstützender Technologien). Dieses Signal sollte daher nicht verwendet werden, um wichtige semantische DOM-Aktualisierungen zu überspringen.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("contentvisibilityautostatechange", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
oncontentvisibilityautostatechange = (event) => { }

Ereignistyp

Ein ContentVisibilityAutoStateChangeEvent.

Beispiele

js
const canvasElem = document.querySelector("canvas");

canvasElem.addEventListener("contentvisibilityautostatechange", stateChanged);
canvasElem.style.contentVisibility = "auto";

function stateChanged(event) {
  if (event.skipped) {
    stopCanvasUpdates(canvasElem);
  } else {
    startCanvasUpdates(canvasElem);
  }
}

// Call this when the canvas updates need to start.
function startCanvasUpdates(canvas) {
  // …
}

// Call this when the canvas updates need to stop.
function stopCanvasUpdates(canvas) {
  // …
}

Spezifikationen

Spezifikation
CSS Containment Module Level 2
# content-visibility-auto-state-change

Browser-Kompatibilität

Siehe auch