File: /home/alfouzantranspor/www/wp-content/themes/businessexpo/assets/js/mobile-menu.js
//Intialise variable
var x = window.matchMedia("(max-width: 767px)")
myFunction(x) // Call listener function at run time
x.addListener(myFunction)
function myFunction(x) {
if (x.matches) { // If media query matches
// jQuery element variables
var $hamburgerMenuBtn,
$slideNav,
$closeBtn,
$main;
// focus management variables
var $focusableInNav,
$firstFocusableElement,
$lastFocusableElement;
jQuery(document).ready(function() {
$hamburgerMenuBtn = jQuery("#hamburger-menu"),
$slideNav = jQuery("#slide-nav"),
$closeBtn = jQuery("#close"),
$main = jQuery("main"),
$focusableInNav = jQuery('#slide-nav button, #slide-nav [href], #slide-nav input, #slide-nav select, #slide-nav textarea, #slide-nav [tabindex]:not([tabindex="-1"])');
if ($focusableInNav.length) {
$firstFocusableElement = $focusableInNav.first();
$lastFocusableElement = $focusableInNav.last();
}
addEventListeners();
});
function addEventListeners() {
$hamburgerMenuBtn.click(openNav);
$closeBtn.click(closeNav);
$slideNav.on("keyup", closeNav);
$firstFocusableElement.on("keydown", moveFocusToBottom);
$lastFocusableElement.on("keydown", moveFocusToTop);
}
function openNav() {
$slideNav.addClass("visible active");
setTimeout(function() {
$firstFocusableElement.focus()
}, 1);
$main.attr("aria-hidden", "true");
$hamburgerMenuBtn.attr("aria-hidden", "true");
}
function closeNav(e) {
if (e.type === "keyup" && e.key !== "Escape") {
return;
}
$slideNav.removeClass("active");
$main.removeAttr("aria-hidden");
$hamburgerMenuBtn.removeAttr("aria-hidden");
setTimeout(function() {
$hamburgerMenuBtn.focus()
}, 1);
setTimeout(function() {
$slideNav.removeClass("visible")
}, 501);
}
function moveFocusToTop(e) {
if (e.key === "Tab" && !e.shiftKey) {
e.preventDefault();
$firstFocusableElement.focus();
}
}
function moveFocusToBottom(e) {
if (e.key === "Tab" && e.shiftKey) {
e.preventDefault();
$lastFocusableElement.focus()
}
}
}
}