Thanks to visit codestin.com
Credit goes to developer.mozilla.org

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