Кратко
СкопированоСобытие wheel
происходит, когда пользователь физически прокручивает колесо мыши, даже если на странице ничего не происходит. За традиционный скролл отвечает событие scroll
.
Как пишется
СкопированоОтловим все случаи, когда пользователь крутит колесо мыши при наведённом на первый <div>
курсоре:
const div = document.getElementsByTagName('div')[0]div.addEventListener('wheel', function(event) { console.log(event)})
const div = document.getElementsByTagName('div')[0] div.addEventListener('wheel', function(event) { console.log(event) })
Как понять
СкопированоСобытие wheel
всегда возникает при прокрутке колеса мыши. Попробуйте полистать внутри пустого блока (будет удобнее, если открыть демо в новой вкладке по ссылке под примером):
Объект события wheel
СкопированоОбъект события wheel
содержит информацию о направлении и «силе» прокрутки в свойствах:
delta
— горизонтальная прокрутка. Значение — целое число:X - отрицательное, если пользователь прокручивает влево;
0
— если в этом направлении прокрутка не происходит;- положительное при прокрутке вправо.
delta
— вертикальная прокрутка. Значение — целое число:Y - отрицательное, если пользователь прокручивает вверх;
0
— если в этом направлении прокрутка не происходит;- положительное при прокрутке вниз.
С помощью объекта события можно, например, перемещать элемент по экрану при прокрутке колеса мыши на десктопе. Чтобы посмотреть, как это работает, откройте демо в новой вкладке по ссылке внизу.
Подсказки
Скопировано💡 Если элемент имеет полосу прокрутки, то обычно после события wheel
происходит scroll
. Этого можно избежать, вызвав метод события prevent
:
document.addEventListener('wheel', function(event) { // Останавливаем поведение по умолчанию, // то есть прокрутку event.preventDefault()})
document.addEventListener('wheel', function(event) { // Останавливаем поведение по умолчанию, // то есть прокрутку event.preventDefault() })