56 lines
No EOL
2.2 KiB
JavaScript
56 lines
No EOL
2.2 KiB
JavaScript
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
|
|
|
|
/*
|
|
* InterstellarDevelopment website
|
|
* Copyright (C) 2024 interstellar_development
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
document.addEventListener("DOMContentLoaded", () => {
|
|
const menu = document.querySelector(".menu");
|
|
const burgerMenu = document.querySelector(".burger-menu");
|
|
|
|
if (!menu || !burgerMenu) {
|
|
console.warn("Menu or burger menu element not found. Ensure they exist in the DOM.");
|
|
return;
|
|
}
|
|
|
|
// Toggle the menu visibility
|
|
function toggleMenu() {
|
|
menu.classList.toggle("active");
|
|
|
|
if (menu.classList.contains("active")) {
|
|
// Add click listener to close menu when clicking outside
|
|
document.addEventListener("click", closeMenu);
|
|
} else {
|
|
// Remove the click listener when menu is closed
|
|
document.removeEventListener("click", closeMenu);
|
|
}
|
|
}
|
|
|
|
// Close the menu if clicking outside of it
|
|
function closeMenu(event) {
|
|
if (!menu.contains(event.target) && !event.target.classList.contains("burger-menu")) {
|
|
menu.classList.remove("active");
|
|
document.removeEventListener("click", closeMenu);
|
|
}
|
|
}
|
|
|
|
// Attach click event to the burger menu button
|
|
burgerMenu.addEventListener("click", (event) => {
|
|
event.stopPropagation(); // Prevent click from immediately triggering closeMenu
|
|
toggleMenu();
|
|
});
|
|
});
|
|
// @license-end
|