Задать вопрос
@MarkelovNNN

Что-то не понимаю, почему не работает этот javascript?

Всем привет!

Ребята, подскажите, почему не работает этот код?

const anchors = document.querySelectorAll('a[href^="#"]');

anchors.forEach((anchor) => {
  anchor.addEventListener('click', function (e) {
		e.preventDefault();
    
		const blockID = anchor.getAttribute('href').substr(1);
		
		document.getElementById(blockID).scrollIntoView({
		  behavior: 'smooth',
		  block: 'start'
		});

		let clientWidth = document.documentElement.clientWidth;
		if (clientWidth >= 992) {
			window.scrollBy(0, -88);
		} else {
			window.scrollBy(0, -13);
		}
	});
});


Мне необходимо, чтобы произошла плавная прокрутка к якорю, а после этого произошло перемещение прокрутки вверх на высоту шапки, но почему-то перехода к якорю не происходит, а производится только смещение вверх.
  • Вопрос задан
  • 216 просмотров
Подписаться 1 Средний 4 комментария
Решения вопроса 1
@Renhor
Попробуйте изменить
const blockID = anchor.getAttribute('href').substr(1);

на
const blockID = e.target.getAttribute('href').substr(1);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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