/** * Blockenix Mega Menu Script * Handles mobile menu toggle and customizer live preview */ (function ($) { 'use strict'; $(document).ready(function () { // Ensure WordPress customize API is available if (typeof wp !== "undefined" && wp.customize) { wp.customize.bind("ready", function () { wp.customize("menu_bg_color", function (value) { value.bind(function (newval) { $(".primary-navigation").css("background-color", newval); }); }); wp.customize("menu_text_color", function (value) { value.bind(function (newval) { $(".menu li a").css("color", newval); }); }); wp.customize("blockenix_container_type", function (value) { value.bind(function (newval) { $("#customize-control-blockenix_custom_width_control").toggle( newval === "custom-width" ); }); }); }); } // Mobile menu toggle functionality const $menuToggle = $("#mobile-menu-toggle"); const $navigation = $(".primary-navigation"); const $closeButton = $(".mobile-menu-close"); const $menuIcon = $(".menu-icon"); const $closeIcon = $(".close-icon"); // Function to open menu function openMenu() { $navigation.addClass("active"); $menuToggle.addClass("active"); $("body").css("overflow", "hidden"); // Prevent body scroll when menu is open } // Function to close menu function closeMenu() { $navigation.removeClass("active"); $menuToggle.removeClass("active"); $("body").css("overflow", ""); // Restore body scroll } if ($menuToggle.length && $navigation.length) { // Toggle button click $menuToggle.on("click", function (e) { e.preventDefault(); e.stopPropagation(); if ($navigation.hasClass("active")) { closeMenu(); } else { openMenu(); } }); // Close button inside menu if ($closeButton.length) { $closeButton.on("click", function (e) { e.preventDefault(); e.stopPropagation(); closeMenu(); }); } // Close menu when clicking outside $(document).on("click", function (e) { if ($navigation.hasClass("active")) { if (!$(e.target).closest(".primary-navigation").length && !$(e.target).closest("#mobile-menu-toggle").length) { closeMenu(); } } }); // Close menu on ESC key $(document).on("keydown", function (e) { if (e.key === "Escape" && $navigation.hasClass("active")) { closeMenu(); } }); // Close menu when clicking on menu links (optional - for single page navigation) $(".primary-navigation .menu a").on("click", function () { if ($(window).width() <= 768) { closeMenu(); } }); } }); })(jQuery);