$(function () { // Navbar scroll $(window).on("scroll", function () { if ($(this).scrollTop() > 60) $("#navbar").addClass("scrolled"); else $("#navbar").removeClass("scrolled"); }); // Hero animation on load setTimeout(function () { $("#heroContent").addClass("visible"); $("#heroBg").addClass("loaded"); }, 200); // Scroll animations function checkVisible() { $(".fact, [data-animate]").each(function () { var el = $(this); var top = el.offset().top; var windowBottom = $(window).scrollTop() + $(window).height(); if (windowBottom > top + 60) { el.addClass("visible"); el.css({ opacity: 1, transform: "translateY(0)" }); } }); } $("[data-animate]").css({ opacity: 0, transform: "translateY(30px)", transition: "opacity 0.8s ease, transform 0.8s ease", }); $(window).on("scroll", checkVisible); checkVisible(); // Floor accordion $(".floor-header").on("click", function () { var item = $(this).closest(".floor-item"); var isOpen = item.hasClass("open"); $(".floor-item").removeClass("open"); $(".floor-body").slideUp(300); if (!isOpen) { item.addClass("open"); item.find(".floor-body").slideDown(300); } }); // Lightbox – gallery grid items $(document).on("click", ".grid-item", function () { var src = $(this).data("img") || $(this).find("img").attr("src"); $("#lightboxImg").attr("src", src); $("#lightbox").addClass("open"); $("body").css("overflow", "hidden"); }); // Lightbox – floor plan images in Raumaufteilung $(document).on("click", ".floor-plan img[data-img]", function () { var src = $(this).data("img"); $("#lightboxImg").attr("src", src); $("#lightbox").addClass("open"); $("body").css("overflow", "hidden"); }); $("#lightboxClose, #lightbox").on("click", function (e) { if (e.target === this) { $("#lightbox").removeClass("open"); $("body").css("overflow", ""); } }); $(document).on("keydown", function (e) { if (e.key === "Escape") { $("#lightbox").removeClass("open"); $("body").css("overflow", ""); } }); // Form submit $("#contactForm").on("submit", function (e) { e.preventDefault(); var btn = $(this).find(".btn-submit"); btn.text("Wird gesendet...").prop("disabled", true); setTimeout(function () { $("#contactForm").hide(); $("#formSuccess").fadeIn(400); }, 1200); }); });