Поиск

Предлагаемые теги:

Плавная прокрутка страницы до якоря с использованием jQuery

Плавная прокрутка страницы до якоря с использованием jQuery

Плавная прокрутка является элегантным способом улучшить пользовательский опыт на веб-странице. Один из часто используемых методов для реализации этой функциональности — использование библиотеки jQuery.

В данной статье мы разберем код, который обеспечивает плавную прокрутку страницы при клике на якорные ссылки. Код выглядит данным образом:

$("body").on('click', '[href*="#"]', function(e){
  var fixed_offset = 100;
  $('html,body').stop().animate({ scrollTop: $(this.hash).offset().top - fixed_offset }, 1000);
  e.preventDefault();
});

Давайте разберем каждую часть кода.

Обработчик события клика

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

Эта строка кода устанавливает обработчик события клика на все элементы <a> (якорные ссылки) внутри элемента body, у которых атрибут href содержит символ "#". Это означает, что обработчик события применяется только к якорным ссылкам.

Фиксированный отступ

var fixed_offset = 100;

Переменная fixed_offset устанавливает фиксированный отступ, который будет вычитаться из конечной позиции прокрутки. Это полезно для того, чтобы целевой элемент не располагался слишком близко к верхней границе окна.

Анимация плавной прокрутки

$('html,body').stop().animate({ scrollTop: $(this.hash).offset().top - fixed_offset }, 1000);

Здесь выполняется анимация плавной прокрутки. Метод .stop() останавливает текущую анимацию (если она существует), и затем метод .animate() создает новую анимацию.

{ scrollTop: $(this.hash).offset().top - fixed_offset }: Эта часть кода определяет свойство прокрутки (scrollTop) и целевую позицию. $(this.hash) выбирает элемент, на который указывает якорь текущей ссылки, а offset().top возвращает вертикальное смещение этого элемента от верхней границы документа. Вычитание fixed_offset корректирует окончательную позицию.

1000: Это длительность анимации в миллисекундах (в данном случае, 1000 миллисекунд или 1 секунда).

Предотвращение стандартного действия

e.preventDefault();

Эта строка предотвращает стандартное действие якорных ссылок, таких как мгновенный переход по ним. Вместо этого мы используем jQuery для плавной анимации прокрутки.

Использование данного кода позволяет добавить плавную прокрутку к якорным ссылкам на вашем веб-сайте, что улучшает пользовательский опыт. Применение jQuery делает процесс реализации этой функции более простым и эффективным.

Теги:
Иван Третьяков
Автор

Иван Третьяков