transcend
@transcend

Как на чистом Javascript сделать смещение при клике по якорной ссылке?

Добрый день.

В мобильной версии сайта хэдер зафиксирован, css - fixed. При клике по якорной ссылке элемент, к которому данная ссылка ведет - спрятан за хэдером.

Нужен самый простой способ, чтобы при прокрутке добавлялся отступ и элемент позиционировался под фиксированным хэдером.
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
Shev_Art_V
@Shev_Art_V
Занимаюсь разработкой сайтов на Modx Revolution
const anchors = document.querySelectorAll('a[href*="#"]');
    for (let anchor of anchors) {
        if (anchor.getAttribute('href').indexOf('http') == -1) {
            anchor.addEventListener('click', function (e) {
                e.preventDefault();
                const blockID = anchor.getAttribute('href').substr(1);
                if (document.getElementById(blockID)) {
                    document.getElementById(blockID).scrollIntoView({
                        behavior: 'smooth',
                        block:  'center'
                    });
                }
            });
        }
    }

Этот код вешает плавный скролл на все якоря на страницы.
Подробности в документации
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы