Кратко
СкопированоСобытие scrollsnapchange срабатывает в момент остановки прокрутки и выбора новой точки привязки.
Как пишется
Скопировано
scrollContainer.addEventListener('scrollsnapchange', function(event) { console.log(event)})
scrollContainer.addEventListener('scrollsnapchange', function(event) {
console.log(event)
})
Как понять
СкопированоСобытие scrollsnapchange возможно только на контейнерах с привязкой прокрутки. Сработает в момент, когда скролл остановился на новой точке привязки, причём до появления события scrollend.
Событие содержит ссылки на элементы, к которым привязалась прокрутка:
snap— в блочном направлении;Target Block snap— в строчном направлении.Target Inline
scrollContainer.addEventListener('scrollsnapchange', function(event) { // Получаем элемент, к которому привязалась прокрутка в блочном направлении console.log(event.snapTargetBlock) // Получаем элемент, к которому привязалась прокрутка в строчном направлении console.log(event.snapTargetInline)})
scrollContainer.addEventListener('scrollsnapchange', function(event) {
// Получаем элемент, к которому привязалась прокрутка в блочном направлении
console.log(event.snapTargetBlock)
// Получаем элемент, к которому привязалась прокрутка в строчном направлении
console.log(event.snapTargetInline)
})
Событие полезно, когда нужно получить информацию об элементе, на котором остановилась прокрутка. Попробуйте скроллить в демо ниже:
Подсказки
Скопировано💡 Событие не сработает, пока пользователь не отпустит палец или курсор. Если пользователь перестал скроллить, но продолжил зажимать элемент, значит прокрутка не завершилась. Нет завершения прокрутки, нет и события scrollsnapchange.
💡 Событие не сработает, пока точка привязки не изменится. Если пользователь скроллил, но остановил прокрутку там же, где начал, то и scrollsnapchange не появится.
- Chrome, не поддерживается
- Edge, не поддерживается
- Firefox, не поддерживается
- Safari, не поддерживается