@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
@Renhor
Попробуйте изменить
const blockID = anchor.getAttribute('href').substr(1);

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

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

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект