2023-08-12 22:48:41 +01:00
|
|
|
// Hamburger menu for mobile navigation
|
|
|
|
|
2023-11-03 16:39:36 -04:00
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
|
|
const menu = document.querySelector('.hamburger-menu');
|
|
|
|
const overlay = document.querySelector('.mobile-menu-overlay');
|
2024-04-04 21:57:17 +00:00
|
|
|
const sidebarContainer = document.querySelector('.hextra-sidebar-container');
|
2023-08-06 15:23:37 +01:00
|
|
|
|
2023-11-03 16:39:36 -04:00
|
|
|
// Initialize the overlay
|
2024-02-20 17:59:31 -05:00
|
|
|
const overlayClasses = ['hx-fixed', 'hx-inset-0', 'hx-z-10', 'hx-bg-black/80', 'dark:hx-bg-black/60'];
|
|
|
|
overlay.classList.add('hx-bg-transparent');
|
|
|
|
overlay.classList.remove("hx-hidden", ...overlayClasses);
|
2023-11-03 16:39:36 -04:00
|
|
|
|
|
|
|
function toggleMenu() {
|
|
|
|
// Toggle the hamburger menu
|
|
|
|
menu.querySelector('svg').classList.toggle('open');
|
|
|
|
|
|
|
|
// When the menu is open, we want to show the navigation sidebar
|
|
|
|
sidebarContainer.classList.toggle('max-md:[transform:translate3d(0,-100%,0)]');
|
|
|
|
sidebarContainer.classList.toggle('max-md:[transform:translate3d(0,0,0)]');
|
|
|
|
|
|
|
|
// When the menu is open, we want to prevent the body from scrolling
|
2024-02-20 17:59:31 -05:00
|
|
|
document.body.classList.toggle('hx-overflow-hidden');
|
|
|
|
document.body.classList.toggle('md:hx-overflow-auto');
|
2023-11-03 16:39:36 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
menu.addEventListener('click', (e) => {
|
|
|
|
e.preventDefault();
|
|
|
|
toggleMenu();
|
|
|
|
|
2024-02-20 17:59:31 -05:00
|
|
|
if (overlay.classList.contains('hx-bg-transparent')) {
|
2023-11-03 16:39:36 -04:00
|
|
|
// Show the overlay
|
|
|
|
overlay.classList.add(...overlayClasses);
|
2024-02-20 17:59:31 -05:00
|
|
|
overlay.classList.remove('hx-bg-transparent');
|
2023-11-03 16:39:36 -04:00
|
|
|
} else {
|
|
|
|
// Hide the overlay
|
|
|
|
overlay.classList.remove(...overlayClasses);
|
2024-02-20 17:59:31 -05:00
|
|
|
overlay.classList.add('hx-bg-transparent');
|
2023-11-03 16:39:36 -04:00
|
|
|
}
|
|
|
|
});
|
2023-08-06 15:23:37 +01:00
|
|
|
|
2023-11-03 16:39:36 -04:00
|
|
|
overlay.addEventListener('click', (e) => {
|
|
|
|
e.preventDefault();
|
|
|
|
toggleMenu();
|
2023-08-06 15:23:37 +01:00
|
|
|
|
2023-11-03 16:39:36 -04:00
|
|
|
// Hide the overlay
|
|
|
|
overlay.classList.remove(...overlayClasses);
|
2024-02-20 17:59:31 -05:00
|
|
|
overlay.classList.add('hx-bg-transparent');
|
2023-11-03 16:39:36 -04:00
|
|
|
});
|
2023-08-06 15:23:37 +01:00
|
|
|
});
|