Задать вопрос
vikars
@vikars
Привет, я программист в сфере веб-разработки.

Не работают ссылки в меню бургер?

Когда делал бургер меню появилась проблема. Я решил сделать мягкую прокрутку при нажатии на ссылку + чтобы меню закрывалась при нажатии на ссылку. Но ни прокрутка ни закрытие меню не получилось. Ссылки решил сделать через
data-goto.
Вот код:
https://codepen.io/vikentievarseniy/pen/NWyjGYJ
  • Вопрос задан
  • 294 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Devilz_1
@Devilz_1
Frontend-Developer
Вот так

Есть несколько моментов:

1) Меню при клике не закроется, если его не закрыть (сорян за тавтологию)
При клике на любой из пунктов, удаляем классы, сопутствующие открытию и отображению меню
function onMenuLinkClick(e) {
    const menuLink = e.target;
    menu.classList.remove('_active');
    menuBody.classList.remove('_active');
    menuBtn.classList.remove('open');
    /*..............*/


2) Не знаю зачем вы решили использовать getBoundingClientRec и проводить расчёты
const gotoBlock = document.querySelector(menuLink.dataset.goto);
const gotoBlockValue = gotoBlock.offsetTop + pageYOffset - document.querySelector('.hero-sec').offsetHeight;
window.scrollTo({
    top: gotoBlock.offsetTop,
    behavior: 'smooth'
});

если можно было обойтись обычным offsetTop
const gotoBlock = document.querySelector(menuLink.dataset.goto);
window.scrollTo({
    top: gotoBlock.offsetTop,
    behavior: 'smooth'
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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