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();
|
|
}
|
|
}); |