Привет всем!
Ребята, только не отсылайте в поиск: пол дня сегодня искал, но так и не вышло задачу решить...
Мне нужна плавная прокрутка при нажатии на якорь ссылки на чистом js. Пробовал разные варианты на чистом js, работают, но якоря, которые содержат цифры (например, "#14") все при нажатии на них выдают ошибку.
Данный ниже вариант на jQuery такую ошибку не выдаёт и всё работает правильно, но ради небольшого кусочка грузить библиотеку jQuery совсем не хочется.
Подскажите, пожалуйста, как можно код ниже переписать на чистом js, при этом, чтобы якоря, содержащие цифры, также работали?
$('a[href^="#"]').on("click", function(event) {
var target = $(this.getAttribute("href"));
var offsetDownLarge = 88; // Большой отступ при зафиксированной «шапке»
var offsetDownSmall = 13; // Маленький отступ при статичной «шапке»
if (target.length) {
event.preventDefault();
var clientWidth = document.body.clientWidth;
var offset = clientWidth >= 992 ? offsetDownLarge : offsetDownSmall; // Размер ширины экрана, начиная с которой применяется большой отступ
var scroll = target.offset().top - offset;
$("html, body").stop().animate( {
scrollTop: scroll
}, 1200); // Время прокрутки
}
});