SemanticMoscow
@SemanticMoscow

ScrollIntoView и behavior:'smooth' — как реализовать нативно?

чтобы анкоры не заезжали под фиксированную шапку, набросал нативный перехват события,
позволяющий ссылкам без хэша не перехватываться.
почти сразу расстроился из-за того, что smooth работает только под линуксом (*chrome, ff),
а под вендой только ff - всё, что на хроме игнорит этот параметр.

есть ли простые решения, чтобы заставить работать плавную прокрутку без простыней и подключаемых библиотек?
document.addEventListener('click',function(z){
if(z.target.tagName==='A'){
let h=new URL(z.target.href).hash;
if(h !=''){z.preventDefault();
let b=document.getElementById(h.rерlасе('#',''));
b.scrollIntoView({block:'center',behavior:'smooth'});}}});
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ForSureN1
frontend dev
window.scrollTo({
    top: 1000,
    behavior: "smooth"
});

где 1000 - (высчитывание высоты блока от начала до верха страницы - высота шапки)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 18:46
3000 руб./за проект
28 нояб. 2024, в 17:46
10000 руб./за проект
28 нояб. 2024, в 17:38
12000 руб./за проект