JavaScript

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

Last updated: 02.04.2026
Views: 162

Іноді необхідно визначити напрямок вертикального прокручування (скроллу) на веб-сайті, щоб динамічно змінювати поведінку елементів інтерфейсу. Наприклад, це може бути корисним під час роботи з елементами 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

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

  • Swipe події на сенсорних пристроях у JavaScript
    Кожен день сенсорні пристрої впроваджуються в наше життя. Ці пристрої мають певні події, на відміну від настільного комп’ютера. Однією з таких подій є swipe (свайп). Особ...
  • Плагін jQuery Accordion
    На сайтах часто використовується акордеон. Цей елемент популярний і в той же час зручний. Акордеон допомагає структурувати контент і економить місце. У своїй роботі я час...
  • Як клонувати (копіювати) об’єкт і масив у JavaScript
    Клонування об'єктів і масивів - не така проста тема, як може здатися на перший погляд. Клонування об’єктів і масивів у JavaScript можна здійснювати за допомогою різних ...

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

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

Blue Captcha Image
Refresh

*