Files
Bratonien-Adventskalender/adventskalender/shared/js/door-open.js

57 lines
1.8 KiB
JavaScript

// Öffnungslogik für Einzeltüren
document.querySelectorAll(".door").forEach(door => {
door.addEventListener("click", () => {
const day = door.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`);
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");
if (openfield) openfield.classList.add("open");
return;
}
if (door.classList.contains("open")) {
console.log(`Tü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;
// Elemente selektieren
const fluegelLinks = document.querySelector(`.fluegel.left[data-day="${day}"]`);
const fluegelRechts = document.querySelector(`.fluegel.right[data-day="${day}"]`);
const openfield = document.querySelector(`.openfield[data-day="${day}"]`);
// Abbruch wenn bereits offen
if (fluegelLinks?.classList.contains("open") || fluegelRechts?.classList.contains("open")) {
console.log(`Flügel ${day} bereits geöffnet`);
return;
}
// Öffne beide Flügel
fluegelLinks?.classList.add("open");
fluegelRechts?.classList.add("open");
// Openfield aktivieren
openfield?.classList.add("open");
});
});