Элемент: событие wheel
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Событие wheel срабатывает, когда пользователь вращает колесико указательного устройства (обычно мыши). Оно также срабатывает для связанных устройств, которые имитируют действия колесика, таких как трекпады и шарики мыши.
Это событие заменяет нестандартное устаревшее событие mousewheel.
Не путайте событие wheel со событием scroll:
- Событие
wheelне обязательно вызывает событиеscroll. Например, элемент может быть полностью не прокручиваемым. Действия масштабирования с помощью колесика или трекпада также вызывают событияwheel. - Событие
scrollне обязательно вызывается событиемwheel. Элементы также могут быть прокручены с помощью клавиатуры, перетаскивания полосы прокрутки или с помощью JavaScript. - Даже когда событие
wheelвызывает прокрутку, значенияdelta*в событииwheelне обязательно отражают направление прокрутки содержимого.
Поэтому не полагайтесь на свойства wheel события delta* для определения направления прокрутки. Вместо этого определять изменения значений scrollLeft и scrollTop целевого элемента в событии scroll.
Событие wheel может быть отменено. Если событие отменено, прокрутка или масштабирование не выполняются. Это может привести к проблемам производительности, так как браузеру нужно подождать обработки каждого события wheel, прежде чем фактически прокрутить содержимое. Этого можно избежать, установив passive: true при вызове addEventListener(), что может привести к тому, что браузер сгенерирует неотменяемые события wheel.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика событий.
addEventListener("wheel", (event) => {});
onwheel = (event) => {};
Тип события
A WheelEvent. Наследует от MouseEvent, UIEvent и Event.
Свойства события
Этот интерфейс наследует свойства от своих предков, MouseEvent, UIEvent и Event.
-
WheelEvent.deltaXТолько для чтения -
Возвращает значение
double, представляющее горизонтальное количество прокрутки. -
WheelEvent.deltaYТолько для чтения -
Возвращает значение
double, представляющее вертикальное количество прокрутки. -
WheelEvent.deltaZТолько для чтения -
Возвращает значение
double, представляющее количество прокрутки по оси z. -
WheelEvent.deltaModeТолько для чтения -
Возвращает значение
unsigned long, представляющее единицу измерения значений прокруткиdelta*. Допустимые значения:Постоянная Значение Описание WheelEvent.DOM_DELTA_PIXEL0x00Значения delta*указаны в пикселях.WheelEvent.DOM_DELTA_LINE0x01Значения delta*указаны в строках. Каждый щелчок мыши прокручивает строку содержимого, где способ расчета высоты строки зависит от браузера.WheelEvent.DOM_DELTA_PAGE0x02Значения delta*указаны в страницах. Каждый щелчок мыши прокручивает страницу содержимого. -
WheelEvent.wheelDeltaТолько для чтения Устаревшее -
Возвращает целое число (32 бита), представляющее расстояние в пикселях.
-
WheelEvent.wheelDeltaXТолько для чтения Устаревшее -
Возвращает целое число, представляющее горизонтальное количество прокрутки.
-
WheelEvent.wheelDeltaYТолько для чтения Устаревшее -
Возвращает целое число, представляющее вертикальное количество прокрутки.
Примеры
Масштабирование элемента с помощью колесика
Этот пример показывает, как масштабировать элемент с помощью колесика мыши (или другого указательного устройства).
<div>Scale me with your mouse wheel.</div>
body {
min-height: 100vh;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
}
div {
width: 105px;
height: 105px;
background: #cdf;
padding: 5px;
}
function zoom(event) {
event.preventDefault();
scale += event.deltaY * -0.01;
// Restrict scale
scale = Math.min(Math.max(0.125, scale), 4);
// Apply scale transform
el.style.transform = `scale(${scale})`;
}
let scale = 1;
const el = document.querySelector("div");
el.onwheel = zoom;
Эквивалент addEventListener
Обработчик событий также может быть настроен с помощью метода addEventListener():
el.addEventListener("wheel", zoom, { passive: false });
Спецификации
| Спецификация |
|---|
| События UI # event-type-wheel |
| HTML # handler-onwheel |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в iOS | Samsung Internet | WebView Android | |
wheel_event |
31 | 12 | 17 | 18 | 7 | 31 | 17 | 18 | Нет | 2.0 | 4.4.3 |
См. также
© 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/Element/wheel_event