Если я правильно понял, то вам надо, чтобы скролл срабатывал только через 20 секунд? Если да, то надо изначально повесить на html и body overflow: hidden, а через 20 секунд просто вернуть html и body overflow: scroll
Как вариант при клике на гамбургер добавлять тегу body или html класс menu-opened и в css прописать стиль для этого класса overflow: hidden, а при закрытии меню и при кликах по ссылкам меню удалять класс menu-opened.
По второму вопросу проверять есть ли у родительского элемента потомки, если есть добавлять класс sub-menu-opened и т.д.
Ответ написан
Комментировать
Комментировать
Оценили как «Нравится»
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.