Skip to content
Category:
Uncategorized
Hello world!
Welcome to WordPress. This is your first post. Edit or delete it, then start writing!
/* ================================================================= KAYABIA ยท Mega-menu nav behavior ================================================================= */ (function () { "use strict"; function init() { var nav = document.querySelector("[data-nav]"); var backdrop = document.querySelector("[data-mega-backdrop]"); if (!nav) return; // Avoid double-binding if Elementor re-runs scripts on AJAX nav. if (nav.dataset.kInit === "1") return; nav.dataset.kInit = "1"; var items = nav.querySelectorAll(".k-nav-item[data-mega]"); var closeTimer = null; var openItem = null; function onScroll() { if (window.scrollY > 8) nav.classList.add("scrolled"); else nav.classList.remove("scrolled"); } window.addEventListener("scroll", onScroll, { passive: true }); onScroll(); function closeAll() { items.forEach(function (it) { var trig = it.querySelector(".k-nav-trigger"); var mega = it.querySelector(".k-mega"); if (trig) { trig.classList.remove("open"); trig.setAttribute("aria-expanded", "false"); } if (mega) mega.hidden = true; }); if (backdrop) backdrop.classList.remove("show"); openItem = null; } function open(item) { if (openItem === item) return; closeAll(); var trig = item.querySelector(".k-nav-trigger"); var mega = item.querySelector(".k-mega"); if (!trig || !mega) return; trig.classList.add("open"); trig.setAttribute("aria-expanded", "true"); mega.hidden = false; if (backdrop) backdrop.classList.add("show"); openItem = item; } items.forEach(function (item) { var trig = item.querySelector(".k-nav-trigger"); if (!trig) return; item.addEventListener("mouseenter", function () { if (closeTimer) { clearTimeout(closeTimer); closeTimer = null; } open(item); }); item.addEventListener("mouseleave", function () { if (closeTimer) clearTimeout(closeTimer); closeTimer = setTimeout(closeAll, 140); }); trig.addEventListener("click", function (e) { e.preventDefault(); if (openItem === item) closeAll(); else open(item); }); }); document.addEventListener("keydown", function (e) { if (e.key === "Escape") closeAll(); }); document.addEventListener("mousedown", function (e) { if (!nav.contains(e.target)) closeAll(); }); if (backdrop) backdrop.addEventListener("click", closeAll); } // Run after DOM is ready (Elementor renders headers after page load sometimes). if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } // Re-init if Elementor fires its frontend-ready event (covers preview / popup contexts). if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", init); } })();