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

This commit is contained in:
2025-11-04 20:38:45 +00:00
parent 95eecae98b
commit 0d7689f13a

View File

@@ -1,61 +1,35 @@
// Öffnungslogik für Einzeltüren
document.querySelectorAll(".door").forEach(door => {
door.addEventListener("click", () => {
const day = door.dataset.day;
document.querySelectorAll(".door, .fluegel").forEach(elem => {
elem.addEventListener("click", () => {
const day = elem.dataset.day;
const openfield = document.querySelector(`.openfield[data-day="${day}"]`);
if (door.classList.contains("double")) {
if (door.classList.contains("open")) {
console.log(`Doppeltür ${day} erneut geöffnet`);
// === EINZELTÜR-LOGIK ===
if (elem.classList.contains("door")) {
if (elem.classList.contains("open")) {
console.log(`Tür ${day} erneut geöffnet`);
return;
}
door.classList.add("open");
const leftFluegel = door.querySelector(".fluegel.left");
const rightFluegel = door.querySelector(".fluegel.right");
if (leftFluegel) leftFluegel.classList.add("open");
if (rightFluegel) rightFluegel.classList.add("open");
elem.classList.add("open");
if (openfield) openfield.classList.add("open");
return;
}
if (door.classList.contains("open")) {
console.log(`Tür ${day} erneut geöffnet`);
return;
}
// === DOPPELFLÜGEL-LOGIK ===
if (elem.classList.contains("fluegel")) {
// bereits geöffnet?
const alreadyOpen = document.querySelectorAll(`.fluegel[data-day="${day}"].rota`);
if (alreadyOpen.length === 2) {
console.log(`Flügeltür ${day} erneut geöffnet`);
return;
}
door.classList.add("open");
if (openfield) openfield.classList.add("open");
});
});
document.querySelectorAll(".fluegel").forEach(flügel => {
flügel.addEventListener("click", () => {
const day = flügel.dataset.day;
const fluegelLeft = document.querySelector(`.fluegel.left[data-day="${day}"]`);
const fluegelRight = document.querySelector(`.fluegel.right[data-day="${day}"]`);
const openfield = document.querySelector(`.openfield[data-day="${day}"]`);
// Abbruch wenn beide schon offen
if (fluegelLeft?.classList.contains("open") && fluegelRight?.classList.contains("open")) {
console.log(`Doppeltür ${day} bereits geöffnet`);
return;
}
// Öffne gezielt nur, wenn noch nicht offen
if (!fluegelLeft?.classList.contains("open")) {
fluegelLeft?.classList.add("open");
}
if (!fluegelRight?.classList.contains("open")) {
fluegelRight?.classList.add("open");
}
// Openfield aktivieren
openfield?.classList.add("open");
const left = document.querySelector(`.fluegel.left[data-day="${day}"]`);
const right = document.querySelector(`.fluegel.right[data-day="${day}"]`);
if (left) left.classList.add("rota");
if (right) right.classList.add("rota");
if (openfield) openfield.classList.add("open");
}
});
});