transcend
@transcend

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

Добрый день.

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

Нужен самый простой способ, чтобы при прокрутке добавлялся отступ и элемент позиционировался под фиксированным хэдером.
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 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'
                    });
                }
            });
        }
    }

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

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Могилев
от 2 800 до 3 300 $
01 мар. 2021, в 00:47
300000 руб./за проект
01 мар. 2021, в 00:29
5555 руб./за проект