/
outthevoid
/
frontend_developer_module_2
Обзор
Документация
Войти
/
outthevoid
/
frontend_developer_module_2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
source/js/open-close-menu.js
41 строка
2 KB
darthmorgot
Удалил вызов функции, вместо него добавил экспорт этой же функции, и мелкие правки кода.
18 ноя 2023, 17:54
18 ноя 2023, 17:54
ad481dd
Код
Авторство
О чём код?
/** * Управление (открытие-закрытие) меню кнопкой-гамбургером */ function openCloseMenu() { let header = document.querySelector('.header'); let nav = document.querySelector('.nav'); let btn = document.querySelector('.nav__menu-button'); let navList = document.querySelector('.nav__list'); let navTop = document.querySelector('.nav__top'); header.classList.remove('header--nojs'); nav.classList.remove('nav--nojs'); btn.addEventListener('click', () => { for (let i = 0; i < btn.children.length - 1; i++) { if (btn.children[i].classList.contains('toggle')) { btn.children[i].classList.remove('toggle'); addRemoveClass(btn, 'nav__menu-button--open', 'nav__menu-button--close'); } else { btn.children[i].classList.add('toggle'); addRemoveClass(btn, 'nav__menu-button--close', 'nav__menu-button--open'); } } navList.classList.toggle('toggle'); navTop.classList.toggle('nav__top--close-menu'); }); } /** Добавление-удаление класса элементу, в данном случае кнопке-гамбургеру * для отображения открытия или закрытия меню * @param elem кнопка-гамбургер * @param removeClass удаляемый класс * @param addClass добавляемый класс */ function addRemoveClass(elem, removeClass, addClass) { elem.classList.remove(removeClass); elem.classList.add(addClass); } module.exports = openCloseMenu;