02 ноября 2016, 19:13
Плавная прокрутка до якоря на JQuery
Нужно сделать плавную прокрутку для якоря, при нажатии на ссылку или какой-либо блок, без проблем! Для этого есть простой готовый скрипт, который достаточно вставить на страницу и наслаждаться его работой.
Скрипт плавного перехода к якорю
$(document).ready(function(){ $('a[href^="#"], *[data-href^="#"]').on('click', function(e){ e.preventDefault(); var t = 1000; var d = $(this).attr('data-href') ? $(this).attr('data-href') : $(this).attr('href'); $('html,body').stop().animate({ scrollTop: $(d).offset().top }, t); }); });
Описание работы скрипт для плавной прокрутка страницы до якоря
Данный скрипт требует наличия подключенной библиотеки jquery на странице.Этот скрипт нужно вставить на страницу в любое место, главное требование, он должен находится ниже места подключения библиотеки jquery.
В скрипте можно указать скорость прокрутки до якоря
var t = 1000;
, меняем 1000 на нужное нам значение, 1000 равно 1 секунде.Скрипт плавной прокрутки также будет работать не только при нажатие на ссылку, можно добавить любому блоку атрибут
data-href="#idBlock"
и тогда при клике на данный блок произойдет плавная прокрутка до якоря, как и по ссылке.
Вернуться назад
Есть небольшой дополнительный вопрос, как сделать так, что бы прокрутка происходила не до якоря, а скажем на 100px выше него, т.к. меню фиксированное и получается закрывает заголовок(якорь)
$('html,body').stop().animate({ scrollTop: $(d).offset().top - 100 }, t);
Например в десктопе -> top — 100, а в мобильной версии после 769рх -> top — 150.