JavaScript

Плавне прокручування (скроллінг) до якоря за допомогою JavaScript

Last updated: 06.04.2026
Views: 146

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

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

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

У цій статті ми розглянемо простий спосіб реалізації плавного прокручування за допомогою JavaScript, що робить навігацію вашим веб-сайтом чистою та легкою.

HTML

<ul class="nav-block">
  <li><a href="#first">First block</a></li>
  <li><a href="#second">Second block</a></li>
  <li><a href="#third">Third block</a></li>
  <li><a href="#fourth">Fourth block</a></li>
</ul>

Атрибут id використовується для позначення якоря. Наприклад:

<div id="first">
Some your content...
</div>

JavaScript

const els = document.querySelectorAll('.nav-block a');

els.forEach((el) => {

  el.addEventListener('click', (ev) => {
    ev.preventDefault();

    const id = el.getAttribute('href').slice(1);
    const block = document.getElementById(id);

    if (block) {
      window.scrollTo({
        top: block.offsetTop,
        behavior: 'smooth',
      });
    }
  });
});

Якщо ви використовуєте jQuery у своєму проекті, ви можете написати майже те саме, використовуючи цю JavaScript бібліотеку.

jQuery

$('.nav-block a').on('click', function(ev) {
    ev.preventDefault();
  
    const id  = $(this).attr('href');
    const top = $(id).offset().top;
  
    $('body,html').stop().animate({scrollTop: top}, 1000);
});

1000 – час прокрутки в мілісекундах

author
Автор: Ігор Рибалко
Працюю фронтенд розробником з 2014 року. Основний стек технологій - Vue.js і WordPress

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

  • Простий годинник на JavaScript
    Існує багато прикладів реалізації годинника за допомогою JavaScript, і хоча підходи можуть дещо відрізнятися, більшість із них дотримуються схожої ідеї. Як правило, така ...
  • Як визначити операційну систему (ОС) за допомогою JavaScript
    Іноді під час створення веб-застосунків або веб-сайтів необхідно визначити операційну систему користувача. Це може бути корисним для застосування різних стилів CSS, збору...
  • Ітерація елементів масиву без циклу
    Приклади дуже абстрактні, оскільки цикли існують. Наша умова буде такою. Потрібно вибрати всі елементи масиву за заданим атрибутом. Або, якщо сказати точніше, потрібно ві...

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

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

Blue Captcha Image
Refresh

*