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: scroll event

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

>

Das scroll-Ereignis wird ausgelöst, wenn die Dokumentansicht gescrollt wurde. Um zu erkennen, wann das Scrollen abgeschlossen ist, siehe das scrollend-Ereignis des Document. Für das Scrollen von Elementen siehe das scroll-Ereignis von Element.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

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

onscroll = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

>

Throttling des Scroll-Ereignisses

Da scroll-Ereignisse in hoher Frequenz ausgelöst werden können, sollte der Ereignis-Handler keine rechenintensiven Operationen wie DOM-Modifikationen ausführen. Wenn Sie bei schnellem Scrollen ein Ruckeln bemerken, sollten Sie in Betracht ziehen, das Ereignis zu drosseln.

Beachten Sie, dass Sie möglicherweise Code sehen, der den scroll-Ereignis-Handler mit requestAnimationFrame() drosselt. Dies ist nutzlos, da Animationsframe-Rückrufe mit der gleichen Frequenz wie scroll-Ereignis-Handler ausgeführt werden. Stattdessen müssen Sie die Timeout-Zeit selbst messen, beispielsweise mit setTimeout().

js
let lastKnownScrollPosition = 0;
let ticking = false;

function doSomething(scrollPos) {
  // Do something with the scroll position
}

document.addEventListener("scroll", (event) => {
  lastKnownScrollPosition = window.scrollY;

  if (!ticking) {
    // Throttle the event to "do something" every 20ms
    setTimeout(() => {
      doSomething(lastKnownScrollPosition);
      ticking = false;
    }, 20);

    ticking = true;
  }
});

Alternativ sollten Sie erwägen, stattdessen IntersectionObserver zu verwenden, der ein schwellenwertbasiertes Zuhören ermöglicht.

Spezifikationen

Specification
CSSOM View Module>
# eventdef-document-scroll>
HTML>
# handler-onscroll>

Browser-Kompatibilität

Siehe auch