логотип PurpleSchool
Иконка входа
Вход
логотип PurpleSchool

Событие wheel в JavaScript

Автор

Дмитрий Нечаев

Событие wheel в JavaScript возникает, когда пользователь крутит колесо мыши. Это событие позволяет создавать интерактивные эффекты и управлять поведением веб-страницы в зависимости от действий пользователя. В этой статье мы рассмотрим, как работает событие wheel, когда его следует использовать, и приведем примеры его применения.

Как работает событие "wheel"?

Событие wheel возникает, когда пользователь крутит колесо мыши вверх или вниз. Это событие может быть использовано для реагирования на прокрутку колеса мыши и выполнения определенных действий в ответ на это действие.

Примеры использования события "wheel"

Изменение размера шрифта при прокрутке колеса мыши

document.addEventListener('wheel', function(event) {
    // Получаем значение величины прокрутки колеса мыши
    const delta = event.deltaY;

    // Увеличиваем или уменьшаем размер шрифта в зависимости от направления прокрутки
    if (delta > 0) {
        document.body.style.fontSize = '14px';
    } else {
        document.body.style.fontSize = '18px';
    }
});

В этом примере при прокрутке колеса мыши вниз (положительное значение deltaY) размер шрифта уменьшается, а при прокрутке вверх (отрицательное значение deltaY) размер шрифта увеличивается.

Прокрутка галереи изображений при помощи колеса мыши

<div id="gallery">
    <img src="image1.jpg" alt="Изображение 1">
    <img src="image2.jpg" alt="Изображение 2">
    <img src="image3.jpg" alt="Изображение 3">
</div>
const gallery = document.getElementById('gallery');
let currentIndex = 0;

gallery.addEventListener('wheel', function(event) {
    // Получаем значение величины прокрутки колеса мыши
    const delta = event.deltaY;

    // Прокручиваем галерею изображений вверх или вниз
    if (delta > 0) {
        currentIndex++;
    } else {
        currentIndex--;
    }

    // Проверяем, чтобы индекс не выходил за границы количества изображений
    currentIndex = Math.min(Math.max(currentIndex, 0), gallery.children.length - 1);

    // Отображаем текущее изображение
    gallery.children[currentIndex].scrollIntoView({ behavior: 'smooth' });
});

В этом примере при прокрутке колеса мыши вниз (положительное значение deltaY) происходит переход к следующему изображению в галерее, а при прокрутке вверх (отрицательное значение deltaY) - к предыдущему изображению.

Особенности и рекомендации по использованию

  • Поддержка браузерами: Событие wheel широко поддерживается всеми современными браузерами.
  • Использование в сочетании с другими событиями: Событие wheel может быть использовано в сочетании с другими событиями, такими как scroll, для создания более сложных интерактивных эффектов.
  • Учет мобильных устройств: Некоторые мобильные устройства не имеют колеса прокрутки мыши, поэтому рекомендуется предусмотреть альтернативные способы взаимодействия для мобильных пользователей.

Заключение

Событие wheel в JavaScript позволяет реагировать на прокрутку колеса мыши пользователем и выполнять различные действия в зависимости от этого действия. Это полезный инструмент для создания интерактивных веб-приложений с возможностью управления поведением при помощи колеса мыши. Правильное использование события wheel может значительно улучшить пользовательский опыт и функциональность вашего веб-сайта или приложения.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile