JavaScript

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

Last updated: 09.10.2025
Views: 89

Плавне прокручування (скроллінг) — популярна функція веб-дизайну, яка покращує взаємодію з користувачем, дозволяючи плавну навігацію між розділами веб-сторінки. Замість різких стрибків плавне прокручування створює плавний рух, роблячи переходи візуально привабливішими. У цій статті ми розглянемо, як реалізувати плавне прокручування за допомогою 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. Тип даних Object відіграє вирішальну роль у JS. Об’єкт — це невпорядкований набір пар ключ-значення. Може містити...
  • Drop down меню (jQuery)
    Drop down меню можна створити без JavaScript, лише використовуючи CSS. За допомогою :hover. Але меню JavaScript має свої переваги. Найголовніше - це затримка зникнення ви...
  • Swipe події на сенсорних пристроях у JavaScript
    Кожен день сенсорні пристрої впроваджуються в наше життя. Ці пристрої мають певні події, на відміну від настільного комп’ютера. Однією з таких подій є swipe (свайп). Особ...

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

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