Плавный скролл по странице к нужному ID (Scroll to id)

Очень популярная функция на различных одностраничниках — плавный скролл к нужному элементу на этой же странице. Чаще всего используется при навигации по меню. Если использовать обычные якоря без js, то плавного скролла не будет.

Самый простой скрипт для плавного скроллинга к нужному элементу.

Используется jQuery, поэтому нужно подключить https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js

Самый простой пример HTML:

<ul class="menu">
  <li><a href="#s1">Section 1</a></li>
  <li><a href="#s2">Section 2</a></li>
  <li><a href="#s3">Section 3</a></li>
  <li><a href="#s4">Section 4</a></li>
</ul>
<div class="wrap">
  <section class="section" id="s1">
    <h2>Section 1</h2>
  </section>
  <section class="section" id="s2">
    <h2>Section 2</h2>
  </section>
  <section class="section" id="s3">
    <h2>Section 3</h2>
  </section>
  <section class="section" id="s4">
    <h2>Section 4</h2>
  </section>
</div>

Скрипт jQuery:

$('a[href*="#"]').on('click', function (e) {
  e.preventDefault();

  $('html, body').animate({
    scrollTop: $($(this).attr('href')).offset().top
  }, 500, 'linear');
});

Рабочий пример:

See the Pen Easy scroll to id by Denis (@deniscreative) on CodePen.

Пример простой и удобный, но есть у него минус — при скроллинге не отмечаются активные пункты меню, если вам это и не надо, то можно без проблем использовать этот код. Если же нужно, чтобы при прокрутке активный блок выделялся в меню, тогда лучше использовать скрипт PageScroll2id, подробнее в этой статье Плавный скроллинг по странице к нужному элементу с использованием плагина PageScroll2id.

Использование @keyframes с препроцессором SASS

Использование @keyframes с препроцессором SASS. Базовый пример использования @keyframes в SASS: @keyframes name-of-animation 0% transform:…

CSS счетчики

CSS счетчики, в своей сущности, переменные CSS, значения которых могут быть инкрементированы при помощи CSS…

Валидация формы обратной связи с помощью Javascript

В одной из статей я приводил пример, валидации формы с помощью CSS, но с ограниченными…

Анимация png-спрайта по слайдам

Недавно применял на сайте интересную анимацию, выглядит она как гифка, но по факту это одна…

Ответить