adventskalender/shared/js/door-open.js aktualisiert

This commit is contained in:
2025-11-05 17:38:48 +00:00
parent f99fa7494a
commit 7a35125212

View File

@@ -1,49 +1,44 @@
document.querySelectorAll(".door, .fluegel").forEach(elem => { // Adventskalender 2025 Türlogik (inkl. Popup)
document.querySelectorAll(".door, .fluegel, .openfield").forEach(elem => {
elem.addEventListener("click", () => { elem.addEventListener("click", () => {
const day = elem.dataset.day; const day = elem.dataset.day;
const openfield = document.querySelector(`.openfield[data-day="${day}"]`); const openfield = document.querySelector(`.openfield[data-day="${day}"]`);
const gifts = window.gifts || {}; // globale Geschenk-Liste (aus popup.js) const doors = document.querySelectorAll(`.door[data-day="${day}"]`);
const gift = gifts[day] || "<p>Heute ist noch nichts freigeschaltet.</p>"; const fluegelLeft = document.querySelector(`.fluegel.left[data-day="${day}"]`);
const fluegelRight = document.querySelector(`.fluegel.right[data-day="${day}"]`);
// === EINZELTÜR === // === EINZELTÜR-LOGIK ===
if (elem.classList.contains("door")) { if (elem.classList.contains("door") || (openfield && doors.length)) {
elem.classList.toggle("open"); const door = doors[0];
if (openfield) openfield.classList.toggle("open"); if (!door.classList.contains("open")) {
showGiftPopup(gift); door.classList.add("open");
if (openfield) openfield.classList.add("open");
console.log(`Tür ${day} geöffnet`);
} else {
console.log(`Tür ${day} erneut geöffnet`);
}
if (typeof openPopup === "function") openPopup(day);
return; return;
} }
// === DOPPELFLÜGEL === // === FLÜGEL-TÜR-LOGIK ===
if (elem.classList.contains("fluegel")) { if (elem.classList.contains("fluegel") || (openfield && fluegelLeft && fluegelRight)) {
const left = document.querySelector(`.fluegel.left[data-day="${day}"]`); const left = fluegelLeft;
const right = document.querySelector(`.fluegel.right[data-day="${day}"]`); const right = fluegelRight;
if (left && right) { if (!left.classList.contains("rota") || !right.classList.contains("rota")) {
left.classList.toggle("rota"); if (left) left.classList.add("rota");
right.classList.toggle("rota"); if (right) right.classList.add("rota");
if (openfield) openfield.classList.add("open");
console.log(`Flügeltür ${day} geöffnet`);
} else {
console.log(`Flügeltür ${day} erneut geöffnet`);
} }
if (openfield) openfield.classList.toggle("open");
showGiftPopup(gift); if (typeof openPopup === "function") openPopup(day);
return;
} }
}); });
});
/* === Popup-Funktion === */
function showGiftPopup(html) {
const overlay = document.getElementById("popup-overlay");
const content = document.getElementById("popup-content");
if (!overlay || !content) return;
content.innerHTML = html;
overlay.style.display = "flex";
}
/* === Schließen-Logik (einmalig) === */
document.addEventListener("DOMContentLoaded", () => {
const overlay = document.getElementById("popup-overlay");
const closeBtn = document.getElementById("popup-close");
if (!overlay || !closeBtn) return;
closeBtn.addEventListener("click", () => (overlay.style.display = "none"));
overlay.addEventListener("click", e => {
if (e.target === overlay) overlay.style.display = "none";
});
}); });