@Emil7676

Как сделать плавный якорь?

Написал вот такой код на Js, он делает плавную прокрутку якорем, но он прокручивает прям в притык, то есть до этого объекта, а нужно чтобы он прокручивал до него и допустим еще 100 пикселей в верх, кто знает как это сделать?
Я хочу чтобы объект после прокрутки находился на посередине, а он прокручивает впритык.
const anchors = document.querySelectorAll('a[href*="#"]')

for (let anchor of anchors) {
    anchor.addEventListener("click", function(event) {
        event.preventDefault();
        const blockID = anchor.getAttribute('href')
        document.querySelector('' +blockID ).scrollIntoView({
            behavior: "smooth",
            block: "start"
            })
})
}
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@penushkin
const scrollIntoViewWithOffset = (selector, offset) => {
  window.scrollTo({
    behavior: 'smooth',
    top:
      document.querySelector(selector).getBoundingClientRect().top -
      document.body.getBoundingClientRect().top -
      offset,
  })
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы