Spec-Zone.ru › Web APIs

SnapEvent

Ограниченная доступность

Эта функция не является Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментальная функция: Это экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости браузеров таблицу совместимости браузеров.

Интерфейс SnapEvent определяет объект события для событий scrollsnapchanging и scrollsnapchange. Соответственно, эти события срабатывают в контейнере прокрутки контейнере прокрутки, когда браузер определяет, что новый целевой элемент для прокрутки с привязкой (будет выбран при завершении текущего жеста прокрутки) ожидается, и когда новый целевой элемент для прокрутки с привязкой выбран.

Эти события могут быть использованы для выполнения кода в ответ на привязку к новым элементам; SnapEvent предоставляет ссылки на элемент, к которому производится привязка по направлению в строку и/или по направлению в столбец. Значения свойств, доступные в SnapEvent, напрямую соответствуют значению свойства CSS scroll-snap-type, заданного для контейнера прокрутки:

  • Если ось привязки задана как block (или физическое значение оси, эквивалентное block в текущем режиме написания), только snapTargetBlock возвращает ссылку на элемент.
  • Если ось привязки задана как inline (или физическое значение оси, эквивалентное inline в текущем режиме написания), только snapTargetInline возвращает ссылку на элемент.
  • Если ось привязки задана как both, snapTargetBlock и snapTargetInline возвращают ссылку на элемент.
Событие SnapEvent

Конструктор

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API