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

View in English Always switch to English

IntersectionObserver: observe()-Methode

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2019 browserübergreifend verfügbar.

Die observe()-Methode der IntersectionObserver-Schnittstelle fügt ein Element der Menge von Ziel-Elementen hinzu, die vom IntersectionObserver beobachtet werden. Ein Observer hat eine Menge von Schwellenwerten und eine Wurzel, kann jedoch mehrere Ziel-Elemente auf Sichtbarkeitsänderungen überwachen, die diesen entsprechen.

Um die Beobachtung des Elements zu stoppen, rufen Sie IntersectionObserver.unobserve() auf.

Wenn die Sichtbarkeit des angegebenen Elements eine der Sichtbarkeits-Schwellen des Observers überschreitet (wie in IntersectionObserver.thresholds aufgelistet), wird der Callback des Observers mit einem Array von IntersectionObserverEntry-Objekten ausgeführt, die die aufgetretenen Schnittänderungen darstellen. Beachten Sie, dass dieses Design es ermöglicht, Schnittänderungen mehrerer Elemente mit einem einzigen Aufruf des Callbacks zu verarbeiten.

Hinweis: Der Observer-Callback wird immer im ersten Rendering-Zyklus nach dem Aufruf von observe() ausgelöst, auch wenn sich das beobachtete Element noch nicht gegenüber dem Ansichtsfenster bewegt hat. Das bedeutet, dass beispielsweise ein Element, das sich außerhalb des Ansichtsfensters befindet, wenn observe() darauf aufgerufen wird, dazu führt, dass der Callback sofort mit mindestens einem Eintrag aufgerufen wird, bei dem intersecting auf false gesetzt ist. Ein Element innerhalb des Ansichtsfensters führt dazu, dass der Callback sofort mit mindestens einem Eintrag aufgerufen wird, bei dem intersecting auf true gesetzt ist.

Syntax

js
observe(targetElement)

Parameter

targetElement

Ein element, dessen Sichtbarkeit innerhalb der Wurzel überwacht werden soll. Dieses Element muss ein Nachkomme des Wurzelelements sein (oder im aktuellen Dokument enthalten sein, wenn die Wurzel das Ansichtsfenster des Dokuments ist). Wenn dieses Element bereits beobachtet wird, macht diese Methode nichts.

Rückgabewert

Keiner (undefined).

Beispiele

js
// Register IntersectionObserver
const io = new IntersectionObserver((entries) => {
  entries.forEach((entry) => {
    if (entry.intersectionRatio > 0) {
      // Add 'active' class if observation target is inside viewport
      entry.target.classList.add("active");
    } else {
      // Remove 'active' class otherwise
      entry.target.classList.remove("active");
    }
  });
});

// Declares what to observe, and observes its properties.
const boxElList = document.querySelectorAll(".box");
boxElList.forEach((el) => {
  io.observe(el);
});

Spezifikationen

Spezifikation
Intersection Observer
# dom-intersectionobserver-observe

Browser-Kompatibilität

Siehe auch