59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
/* ================================
|
||
Quick Menu – Toggle
|
||
================================ */
|
||
|
||
const toggleBtn = document.getElementById("quickmenu-toggle");
|
||
const panel = document.getElementById("quickmenu-panel");
|
||
const overlay = document.getElementById("qm-overlay");
|
||
|
||
let menuOpen = true;
|
||
|
||
toggleBtn.addEventListener("click", () => {
|
||
menuOpen = !menuOpen;
|
||
panel.classList.toggle("hidden", !menuOpen);
|
||
toggleBtn.textContent = menuOpen ? "◀" : "▶";
|
||
});
|
||
|
||
/* ================================
|
||
Quick Menu – Popups öffnen
|
||
================================ */
|
||
|
||
document.querySelectorAll(".qm-slot").forEach((slot) => {
|
||
slot.addEventListener("click", () => {
|
||
const id = slot.dataset.popup;
|
||
if (!id) return;
|
||
|
||
const popup = document.getElementById(id);
|
||
if (!popup) return;
|
||
|
||
overlay.classList.add("active");
|
||
popup.classList.add("active");
|
||
});
|
||
});
|
||
|
||
/* ================================
|
||
Quick Menu – Popups schließen
|
||
================================ */
|
||
|
||
document.querySelectorAll(".qm-popup-close").forEach((btn) => {
|
||
btn.addEventListener("click", () => {
|
||
closeAllPopups();
|
||
});
|
||
});
|
||
|
||
overlay.addEventListener("click", () => {
|
||
closeAllPopups();
|
||
});
|
||
|
||
function closeAllPopups() {
|
||
document.querySelectorAll(".qm-popup").forEach((p) => {
|
||
p.classList.remove("active");
|
||
});
|
||
overlay.classList.remove("active");
|
||
}
|
||
|
||
/* Escape-Taste schließt Popup */
|
||
document.addEventListener("keydown", (e) => {
|
||
if (e.key === "Escape") closeAllPopups();
|
||
});
|