SnapEvent
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 SnapEvent
Interface definiert das Ereignisobjekt für die scrollsnapchanging
und scrollsnapchange
Ereignisse. Diese werden jeweils auf einem Scroll-Container ausgelöst, wenn der Browser feststellt, dass ein neues Ziel für das Scroll-Snapping ansteht (ausgewählt wird, wenn die aktuelle Scroll-Geste endet), und wenn ein neues Snap-Ziel ausgewählt wird.
Diese Ereignisse können verwendet werden, um Code auszuführen, als Reaktion auf neue Elemente, die geschnappt werden; SnapEvent
bietet Referenzen auf das Element, das in der Inline- und/oder Blockrichtung geschnappt wird. Die auf SnapEvent
verfügbaren Eigenschaftswerte entsprechen direkt dem Wert der scroll-snap-type
CSS-Eigenschaft, die auf den Scroll-Container festgelegt ist:
- Wenn die Snap-Achse als
block
spezifiziert ist (oder ein physischer Achsenwert, der im aktuellen Schreibmodusblock
entspricht), liefert nursnapTargetBlock
eine Elementreferenz. - Wenn die Snap-Achse als
inline
spezifiziert ist (oder ein physischer Achsenwert, der im aktuellen Schreibmodusinline
entspricht), liefert nursnapTargetInline
eine Elementreferenz. - Wenn die Snap-Achse als
both
spezifiziert ist, liefernsnapTargetBlock
undsnapTargetInline
beide eine Elementreferenz.
Konstruktor
SnapEvent()
Experimentell-
Erstellt eine neue Instanz eines
SnapEvent
-Objekts.
Instanz-Eigenschaften
Erbt Eigenschaften von seinem Elternteil, Event
.
snapTargetBlock
Schreibgeschützt Experimentell-
Gibt eine Referenz auf das Element zurück, das in der Blockrichtung geschnappt wurde, als das Ereignis ausgelöst wurde, oder
null
, wenn das Scroll-Snapping nur in der Inline-Richtung erfolgt und daher kein Element in der Blockrichtung geschnappt wird. snapTargetInline
Schreibgeschützt Experimentell-
Gibt eine Referenz auf das Element zurück, das in der Inline-Richtung geschnappt wurde, als das Ereignis ausgelöst wurde, oder
null
, wenn das Scroll-Snapping nur in der Blockrichtung erfolgt und daher kein Element in der Inline-Richtung geschnappt wird.
Beispiele
scrollsnapchanging
Beispiel
Im folgenden scrollsnapchanging
-Handler-Funktionsbeispiel setzen wir das class
-Attribut des snapTargetBlock
Elements mit der Eigenschaft Element.className
auf pending
, was genutzt werden könnte, um das Element anders zu stylen, wenn es ein ausstehendes Snap-Ziel wird.
Beachten Sie, dass dieser Handler für einen Scroll-Container in Blockrichtung (vertikal scrollend, wenn die Seite auf einen horizontalen writing-mode
eingestellt ist) gedacht ist. Daher wird sich nur das snapTargetBlock
-Element zwischen mehreren auslösenden Ereignissen ändern. SnapEvent.snapTargetInline
wird null
zurückgeben, da in der Inline-Richtung kein Snapping erfolgt.
scrollingElem.addEventListener("scrollsnapchanging", (event) => {
// Set current pending snap target class to "pending"
event.snapTargetBlock.className = "pending";
// Logs the new pending block-direction snap target element
console.log(event.snapTargetBlock);
// Logs null; no inline snapping occurs
console.log(event.snapTargetInline);
});
scrollsnapchange
Beispiel
Im folgenden scrollsnapchange
-Handler-Funktionsbeispiel setzen wir eine selected
-Klasse auf das SnapEvent.snapTargetBlock
Element, was genutzt werden könnte, um ein neu ausgewähltes Snap-Ziel so zu stylen, dass es aussieht, als wäre es ausgewählt (zum Beispiel mit einer Animation).
scrollingElem.addEventListener("scrollsnapchange", (event) => {
event.snapTargetBlock.className = "selected";
});
Spezifikationen
Specification |
---|
CSS Scroll Snap Module Level 2 # snapevent-interface |
Browser-Kompatibilität
Siehe auch
scrollsnapchanging
Ereignisscrollsnapchange
Ereignis- CSS scroll snap module
- Verwendung von Scroll-Snap-Ereignissen
- Scroll Snap Events auf developer.chrome.com (2024)