SnapEvent
Ограниченная доступность
Эта функция не является Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная функция: Это экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости браузеров таблицу совместимости браузеров.
Интерфейс SnapEvent определяет объект события для событий scrollsnapchanging и scrollsnapchange. Соответственно, эти события срабатывают в контейнере прокрутки контейнере прокрутки, когда браузер определяет, что новый целевой элемент для прокрутки с привязкой (будет выбран при завершении текущего жеста прокрутки) ожидается, и когда новый целевой элемент для прокрутки с привязкой выбран.
Эти события могут быть использованы для выполнения кода в ответ на привязку к новым элементам; SnapEvent предоставляет ссылки на элемент, к которому производится привязка по направлению в строку и/или по направлению в столбец. Значения свойств, доступные в SnapEvent, напрямую соответствуют значению свойства CSS scroll-snap-type, заданного для контейнера прокрутки:
- Если ось привязки задана как
block(или физическое значение оси, эквивалентноеblockв текущем режиме написания), толькоsnapTargetBlockвозвращает ссылку на элемент. - Если ось привязки задана как
inline(или физическое значение оси, эквивалентноеinlineв текущем режиме написания), толькоsnapTargetInlineвозвращает ссылку на элемент. - Если ось привязки задана как
both,snapTargetBlockиsnapTargetInlineвозвращают ссылку на элемент.
Конструктор
-
SnapEvent()Экспериментальная -
Создаёт новый экземпляр объекта
SnapEvent.
Свойства экземпляра
Наследует свойства от родительского класса, Event.
-
snapTargetBlockТолько для чтения Экспериментальная -
Возвращает ссылку на элемент, привязанный по направлению в столбец во время срабатывания события, или
nullесли прокрутка с привязкой происходит только по направлению в строку, поэтому к элементу в направлении в столбец не привязано. -
snapTargetInlineТолько для чтения Экспериментальная -
Возвращает ссылку на элемент, привязанный по направлению в строку во время срабатывания события, или
nullесли прокрутка с привязкой происходит только по направлению в столбец, поэтому к элементу в направлении в строку не привязано.
Примеры
scrollsnapchanging пример
В следующем фрагменте обработчика событий scrollsnapchanging мы устанавливаем атрибут class элемента snapTargetBlock в значение pending с помощью свойства Element.className, что может использоваться для стилизации элемента по-другому, когда он становится ожидаемой целью привязки.
Обратите внимание, что этот обработчик предназначен для установки на контейнер прокрутки по направлению в столбец (вертикальная прокрутка, если страница настроена на горизонтальное writing-mode), поэтому только элемент snapTargetBlock будет изменяться между срабатываниями нескольких событий. SnapEvent.snapTargetInline вернёт null, потому что привязка не происходит по направлению в строку.
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 пример
В следующем фрагменте обработчика событий scrollsnapchange мы устанавливаем класс selected на элементе SnapEvent.snapTargetBlock, что может использоваться для стилизации только что выбранной целевой привязки, чтобы она выглядела выбранной (например, с анимацией).
scrollingElem.addEventListener("scrollsnapchange", (event) => {
event.snapTargetBlock.className = "selected";
});
Спецификации
| Спецификация |
|---|
| CSS Scroll Snap Module Level 2 # snapevent-interface |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
SnapEvent |
129 | 129 | Нет | 115 | Нет | 129 | Нет | 86 | Нет | Нет | 129 |
SnapEvent |
129 | 129 | Нет | 115 | Нет | 129 | Нет | 86 | Нет | Нет | 129 |
snapTargetBlock |
129 | 129 | Нет | 115 | Нет | 129 | Нет | 86 | Нет | Нет | 129 |
snapTargetInline |
129 | 129 | Нет | 115 | Нет | 129 | Нет | 86 | Нет | Нет | 129 |
См. также
-
scrollsnapchangingсобытие -
scrollsnapchangeсобытие - Модуль CSS прокрутки с привязкой
- Использование событий прокрутки с привязкой
- События прокрутки с привязкой на developer.chrome.com (2024)
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SnapEvent