forked from HPR/hpr_generator
27 lines
922 B
JavaScript
27 lines
922 B
JavaScript
![]() |
const hamburger = document.querySelector('.hamburger');
|
||
|
const mainNav = document.querySelector('#main_menu');
|
||
|
const hamburgerIcon = document.querySelector('.hamburger_icon');
|
||
|
const closeIcon = document.querySelector('.close_icon');
|
||
|
|
||
|
hamburger.addEventListener('click', function() {
|
||
|
const isOpen = this.getAttribute('aria-expanded') === 'true';
|
||
|
|
||
|
this.setAttribute('aria-expanded', !isOpen);
|
||
|
|
||
|
mainNav.classList.toggle('is_open');
|
||
|
hamburgerIcon.classList.toggle('is_open');
|
||
|
closeIcon.classList.toggle('is_open');
|
||
|
|
||
|
if (!isOpen) {
|
||
|
const firstLink = mainNav.querySelector('a');
|
||
|
if (firstLink) firstLink.focus();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
document.addEventListener('keydown', function(e) {
|
||
|
if (e.key === 'Escape' && mainNav.classList.contains('is_open')) {
|
||
|
mainNav.classList.remove('is_open');
|
||
|
hamburger.setAttribute('aria-expanded', 'false');
|
||
|
hamburger.focus();
|
||
|
}
|
||
|
});
|