Элемент: событие mousewheel
Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она может быть уже удалена из соответствующих веб-стандартов, может быть в процессе удаления или сохраняться только для совместимости. Избегайте её использования и, по возможности, обновите существующий код; см. таблицу совместимости в нижней части этой страницы для принятия решения. Имейте в виду, что эта функция может перестать работать в любое время.
Нестандартный: Эта функция нестандартна и не входит в список стандартов. Не используйте её на производственных сайтах, работающих через веб: она не будет работать для каждого пользователя. Также могут быть существенные несовместимости между реализациями, и поведение может измениться в будущем.
Устаревшее и нестандартное mousewheel событие срабатывает асинхронно на Element для предоставления обновлений во время работы колёсиком мыши или аналогичным устройством. Событие mousewheel никогда не было частью какого-либо стандарта, и хотя оно реализовывалось несколькими браузерами, оно никогда не реализовывалось Firefox.
Примечание: Вместо этого устаревшего события используйте стандартное wheel событие.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или установите обработчик событий.
addEventListener("mousewheel", (event) => {});
onmousewheel = (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Только для чтения Устаревшее -
Возвращает целое число, представляющее количество вертикальной прокрутки.
Свойство detail
Значение свойства detail всегда равно нулю, за исключением Opera, которая использует detail аналогично значению detail события DOMMouseScroll, которое доступно только в Firefox, указывающему расстояние прокрутки в строках, причём отрицательные значения означают, что прокрутка направлена вниз или вправо, а положительные значения означают прокрутку вверх или влево.
Примечание: На macOS расстояние прокрутки (и, следовательно, значение detail) вычисляется на основе ускоренного расстояния прокрутки.
На Linux, 2 или -2 устанавливается для каждого системного события колёсика.
Значение wheelDelta, wheelDeltaX и wheelDeltaY
Значение атрибута wheelDelta — абстрактное значение, показывающее, насколько повернулось колесо. Если колесо повернулось от пользователя, значение положительное, в противном случае — отрицательное. Это означает, что знак значения delta отличается от значения wheel события DOM Level 3. Однако смысл величины этих значений не одинаков в разных браузерах. См. объяснение ниже.
IE и Opera (Presto) поддерживают только атрибут wheelDelta и не поддерживают горизонтальную прокрутку.
Значение атрибута wheelDeltaX указывает значение атрибута wheelDelta по горизонтали. Если пользователь использует устройство для прокрутки вправо, значение отрицательное. В противном случае, если оно влево, значение положительное.
Значение атрибута wheelDeltaY указывает значение атрибута wheelDelta по вертикали. Знак значения совпадает со знаком значения атрибута wheelDelta.
Chrome
В Windows значение такое же, как значение delta WM_MOUSEWHEEL или WM_MOUSEHWHEEL. А также значение не меняется, даже если размер прокрутки в настройках системы равен прокрутке на страницу, т.е. значение такое же, как в IE в Windows.
На Linux значение равно 120 или -120 для каждого системного события колёсика. Это приводит к поведению, аналогичному IE и Chrome для Windows.
На Mac значение сложное. Значение изменяется, если устройство, вызывающее системное событие колёсика, поддерживает непрерывную прокрутку.
Если устройство поддерживает непрерывную прокрутку (например, трекпад MacBook или колесо мыши, которое можно плавно поворачивать), значение вычисляется на основе ускоренного расстояния прокрутки. В этом случае значение такое же, как в Safari.
Если устройство не поддерживает непрерывную прокрутку (например, старое колесо мыши, которое нельзя плавно поворачивать), значение вычисляется на основе неускоренного расстояния прокрутки (120 на щелчок). В этом случае значение отличается от Safari.
Эта разница создаёт серьёзную проблему для разработчиков веб-приложений. То есть, разработчики веб-приложений не могут знать, вызвано ли событие mousewheel каким устройством.
Safari
Значение всегда вычисляется по ускоренному расстоянию прокрутки. Это действительно отличается от других браузеров, за исключением Chrome с поддержкой непрерывной прокрутки устройства.
Opera (Presto)
Значение всегда равно значению атрибута detail ✕ 40.
В Windows, так как значение атрибута detail вычисляется из фактического расстояния прокрутки, значение отличается от других браузеров, за исключением случаев, когда размер прокрутки на щелчок равен 3 строкам в настройках системы или странице.
На Linux значение равно 80 или -80 для каждого системного события колёсика. Это отличается от других браузеров.
На Mac значение атрибута detail вычисляется на основе ускоренного расстояния прокрутки системного события. Значение обычно намного больше, чем в Safari или Chrome.
Спецификации
Не входит ни в одну спецификацию.
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
mousewheel_event |
1 | 12 | Нет | ≤15 | 3 | 18 | Нет | ≤14 | 1 | 1.0 | 4.4 |
См. также
- Стандартное
wheelсобытие для использования вместо него.
© 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/mousewheel_event