JavaScript

Як визначити напрямок прокручування (скроллу) на сторінці за допомогою JavaScript

Last updated: 02.04.2026
Views: 140

Іноді необхідно визначити напрямок вертикального прокручування (скроллу) на веб-сайті, щоб динамічно змінювати поведінку елементів інтерфейсу. Наприклад, це може бути корисним під час роботи з елементами header або footer — приховування їх під час прокручування вниз для економії місця на екрані та відображення їх знову, коли користувач прокручує вгору.

Виявлення напрямку прокручування також може покращити взаємодію з користувачем в інших сценаріях, таких як запуск анімації, завантаження додаткового контенту або налаштування елементів навігації залежно від того, як користувач взаємодіє зі сторінкою. Цей метод часто використовується в сучасних веб-інтерфейсах, щоб зробити їх більш адаптивними та інтуїтивно зрозумілими.

Основна ідея визначення напрямку прокручування полягає в порівнянні поточної позиції прокручування з попередньою. Відстежуючи, як це значення змінюється з часом, можна визначити, чи прокручує користувач вгору чи вниз, і відповідно реагувати.

У наступному прикладі ми реалізуємо просте рішення, яке визначає напрямок прокручування за допомогою JavaScript.

JavaScript

let lastScrollTop = 0; // Store the last scroll position

window.addEventListener("scroll", function () {
    let scrollTop = window.scrollY || document.documentElement.scrollTop;

    if (scrollTop > lastScrollTop) {
        console.log("Scrolling Down");
    } else if (scrollTop < lastScrollTop) {
        console.log("Scrolling Up");
    }

    lastScrollTop = scrollTop; // Update the last scroll position
});

Щоб визначити напрямок горизонтального прокручування, використовуйте window.scrollX або document.documentElement.scrollLeft.

Іноді я також використовую jQuery в деяких проектах. Давайте напишемо те саме за допомогою jQuery

jQuery

let lastScrollTop = 0; // Store the last scroll position

$(window).on('scroll', function(){
    let scrollTop = $(this).scrollTop();

    if (scrollTop > lastScrollTop) {
        console.log("Scrolling Down");
    } else if (scrollTop < lastScrollTop) {
        console.log("Scrolling Up");
    }

    lastScrollTop = scrollTop; // Update the last scroll position
});
author
Автор: Ігор Рибалко
Працюю фронтенд розробником з 2014 року. Основний стек технологій - Vue.js і WordPress

Схожі записи:

  • Як відправити форму за допомогою jQuery Ajax ($.ajax)
    Відправка форми за допомогою методу $.ajax jQuery є способом надсилання даних на сервер без перезавантаження сторінки. Цей підхід покращує взаємодію з користувачем і забе...
  • Як створити власний плагін jQuery
    Зручність плагіна jQuery полягає в тому, що ви можете використовувати один і той же код кілька разів для різних об’єктів. У цьому випадку копіювати та вставляти код не по...
  • Swipe події на сенсорних пристроях у JavaScript
    Кожен день сенсорні пристрої впроваджуються в наше життя. Ці пристрої мають певні події, на відміну від настільного комп’ютера. Однією з таких подій є swipe (свайп). Особ...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Blue Captcha Image
Refresh

*