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'});}}});
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ForSureN1
frontend dev
window.scrollTo({
    top: 1000,
    behavior: "smooth"
});

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

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 11:20
5000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект
01 мая 2024, в 10:55
3000 руб./за проект