Плавная прокрутка является элегантным способом улучшить пользовательский опыт на веб-странице. Один из часто используемых методов для реализации этой функциональности — использование библиотеки 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();
});
Давайте разберем каждую часть кода.
Table of contents [Show]
Обработчик события клика
$("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 делает процесс реализации этой функции более простым и эффективным.