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: scrollsnapchange Ereignis

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Das scrollsnapchange Ereignis der Document Schnittstelle wird am Dokument-Scrollcontainer am Ende eines Scrollvorgangs ausgelöst, wenn ein neues Scroll-Snap-Ziel ausgewählt wird.

Dieses Ereignis funktioniert ähnlich wie das scrollsnapchange Ereignis der Element Schnittstelle, mit der Ausnahme, dass das gesamte HTML-Dokument als Scroll-Snap-Container gesetzt werden muss (d.h. scroll-snap-type ist auf dem <html> Element gesetzt).

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandlereigenschaft.

js
addEventListener("scrollsnapchange", (event) => { }) onscrollsnapchange = (event) => { } 

Ereignistyp

Ein SnapEvent, das vom generischen Event Typ erbt.

Beispiele

Grundlegende Verwendung

Angenommen, wir haben ein <main> Element, das erheblichen Inhalt enthält, der zum Scrollen führt:

html
<main> <!-- Significant content --> </main> 

Das <main> Element kann mithilfe einer Kombination von CSS-Eigenschaften in einen Scroll-Container umgewandelt werden, zum Beispiel:

css
main { width: 250px; height: 450px; overflow: scroll; } 

Wir können dann das Scroll-Snap-Verhalten auf dem scrollenden Inhalt umsetzen, indem wir die scroll-snap-type Eigenschaft auf dem <html> Element spezifizieren:

css
html { scroll-snap-type: block mandatory; } 

Das folgende JavaScript-Snippet würde das scrollsnapchange Ereignis auf dem HTML-Dokument auslösen, wenn ein Kind des <main> Elements zu einem neu ausgewählten Snap-Ziel wird. In der Handlerfunktion setzen wir eine selected Klasse auf das Kind, das durch SnapEvent.snapTargetBlock referenziert wird. Diese Klasse könnte verwendet werden, um es so zu stylen, dass es aussieht, als ob es ausgewählt wurde (zum Beispiel mit einer Animation), wenn das Ereignis ausgelöst wird.

js
document.addEventListener("scrollsnapchange", (event) => { event.snapTargetBlock.classList.add("selected"); }); 

Spezifikationen

Specification
CSS Scroll Snap Module Level 2
# scrollsnapchange

Browser-Kompatibilität

Siehe auch