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
blockspezifiziert ist (oder ein physischer Achsenwert, der im aktuellen Schreibmodusblockentspricht), liefert nursnapTargetBlockeine Elementreferenz. - Wenn die Snap-Achse als
inlinespezifiziert ist (oder ein physischer Achsenwert, der im aktuellen Schreibmodusinlineentspricht), liefert nursnapTargetInlineeine Elementreferenz. - Wenn die Snap-Achse als
bothspezifiziert ist, liefernsnapTargetBlockundsnapTargetInlinebeide eine Elementreferenz.
Konstruktor
SnapEvent()Experimentell-
Erstellt eine neue Instanz eines
SnapEvent-Objekts.
Instanz-Eigenschaften
Erbt Eigenschaften von seinem Elternteil, Event.
snapTargetBlockSchreibgeschü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. snapTargetInlineSchreibgeschü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
Loading…
Siehe auch
scrollsnapchangingEreignisscrollsnapchangeEreignis- CSS scroll snap module
- Verwendung von Scroll-Snap-Ereignissen
- Scroll Snap Events auf developer.chrome.com (2024)