File: /var/www/html/ielts-store/wp-content/themes/oceanwp/assets/js/core/sidr.js
var $j = jQuery.noConflict(),
$window = $j( window );
$j( document ).ready( function() {
"use strict";
// Mobile menu
oceanwpMobileMenu();
} );
/* ==============================================
MOBILE SCRIPT
============================================== */
function oceanwpMobileMenu( event ) {
"use strict"
if ( typeof oceanwpLocalize.sidrSource !== 'undefined'
&& $j( 'body' ).hasClass( 'sidebar-mobile' ) ) {
var $first = true;
// Add sidr
$j( '.mobile-menu' ).sidr( {
name : 'sidr',
source : oceanwpLocalize.sidrSource,
side : oceanwpLocalize.sidrSide,
displace : oceanwpLocalize.sidrDisplace,
speed : 300,
renaming : true,
bind : 'click',
onOpen : function onOpen() {
// Class of the custom opening button
$j( '.mobile-menu > .hamburger' ).addClass( 'is-active' );
if ( $first == true ) {
// Declare useful vars
var $hasChildren = $j( '.sidr-class-menu-item-has-children' );
var $sidrmenu = $j( '.mobile-menu > .hamburger' );
var isMenuOpen = false;
$sidrmenu.on('click', function () {
isMenuOpen = !isMenuOpen;
$sidrmenu.attr('aria-expanded', isMenuOpen);
});
// Add dropdown toggle (plus)
$hasChildren.children( 'a' ).append( '<span class="sidr-class-dropdown-toggle"></span>' );
// Toggle dropdowns
var $sidrDropdownTarget = $j( '.sidr-class-dropdown-toggle' );
// Check localization
if ( oceanwpLocalize.sidrDropdownTarget == 'link' ) {
$sidrDropdownTarget = $j( 'li.sidr-class-menu-item-has-children > a' );
}
// Add toggle click event
$sidrDropdownTarget.on( 'click', function( event ) {
// Define toggle vars
if ( oceanwpLocalize.sidrDropdownTarget == 'link' ) {
var $toggleParentLi = $j( this ).parent( 'li' );
} else {
var $toggleParentLink = $j( this ).parent( 'a' ),
$toggleParentLi = $toggleParentLink.parent( 'li' );
}
// Get parent items and dropdown
var $allParentLis = $toggleParentLi.parents( 'li' ),
$dropdown = $toggleParentLi.children( 'ul' );
// Toogle items
if ( ! $toggleParentLi.hasClass( 'active' ) ) {
$hasChildren.not( $allParentLis ).removeClass( 'active' ).children( 'ul' ).slideUp( 'fast' );
$toggleParentLi.addClass( 'active' ).children( 'ul' ).slideDown( 'fast' );
} else {
$toggleParentLi.removeClass( 'active' ).children( 'ul' ).slideUp( 'fast' );
}
// Return false
return false;
} );
$first = false;
}
// Add light overlay to content
$j( '#site-header' ).after( '<div class="oceanwp-sidr-overlay"></div>' );
$j( '.oceanwp-sidr-overlay' ).fadeIn( 300 );
// Close sidr when clicking overlay
$j( '.oceanwp-sidr-overlay' ).on( 'click', function() {
$j.sidr( 'close', 'sidr' );
return false;
} );
// Close on resize
$window.resize( function() {
if ( $window.width() >= 960 ) {
$j.sidr( 'close', 'sidr' );
$j( '.mobile-menu > .hamburger' ).removeClass( 'is-active' );
}
} );
},
onClose : function onClose() {
// Remove class of the custom opening button
$j( '.mobile-menu > .hamburger' ).removeClass( 'is-active' );
// Remove active dropdowns
$j( '.sidr-class-menu-item-has-children.active' ).removeClass( 'active' ).children( 'ul' ).hide();
// FadeOut overlay
$j( '.oceanwp-sidr-overlay' ).fadeOut( 300, function() {
$j( this ).remove();
} );
}
} );
// Replace Font Awesome icons class
$j( '#sidr [class*="sidr-class-fa"]' ).attr( 'class', function( i, c ) {
c = c.replace( 'sidr-class-fa', 'fa' );
c = c.replace( 'sidr-class-fa-', 'fa-' );
return c;
} );
// Replace Simple Line Icons class
$j( '#sidr [class*="sidr-class-icon"]' ).attr( 'class', function( i, c ) {
c = c.replace( 'sidr-class-icon-', 'icon-' );
return c;
} );
// Replace OWP SVG Icons class
$j( '#sidr [class*="sidr-class-owp-icon"]' ).attr( 'class', function( i, c ) {
c = c.replace( 'sidr-class-owp-icon', 'owp-icon' );
c = c.replace( 'sidr-class-owp-icon--', 'owp-icon--' );
return c;
} );
// Close sidr when clicking on close button
$j( 'a.sidr-class-toggle-sidr-close' ).on( 'click', function() {
$j.sidr( 'close', 'sidr' );
$j( '.mobile-menu > .hamburger' ).removeClass( 'is-active' );
return false;
} );
// Close when clicking local scroll link
$j( '.sidr-class-dropdown-menu a[href*="#"]:not([href="#"]), .sidr-class-menu-item > a[href*="#"]:not([href="#"])' ).on( 'click', function() {
$j.sidr( 'close', 'sidr' );
$j( '.mobile-menu > .hamburger' ).removeClass( 'is-active' );
} );
// If disable link
$j( 'li.sidr-class-nav-no-click > a' ).on( 'click', function() {
return false;
} );
}
}
function owpSidrDropdown() {
var owpHeader = document.getElementById('site-header'),
navWarap = document.querySelectorAll( '#sidr' )[0],
sidrClose = document.querySelector( '.sidr-class-toggle-sidr-close' );
if ( ! owpHeader || ! navWarap ) {
return;
}
var mobileIcon = document.querySelector( '.mobile-menu' );
mobileIcon.addEventListener( 'click', function() {
if ( ! sidrClose.classList.contains( 'opened' ) ) {
sidrClose.classList.toggle( 'opened' );
} else {
sidrClose.classList.remove( 'opened' );
}
});
sidrClose.addEventListener( 'click', function() {
sidrClose.classList.remove( 'opened' );
});
document.addEventListener( 'keydown', function( event ) {
var selectors = 'input, a, button',
elements = navWarap.querySelectorAll( selectors ),
closMenu = document.querySelector( '.sidr-class-toggle-sidr-close.opened' ),
lastEl = elements[ elements.length - 1 ],
firstEl = elements[0],
activeEl = document.activeElement,
tabKey = event.keyCode === 9,
shiftKey = event.shiftKey;
if ( ! closMenu ) {
return;
}
if ( ! shiftKey && tabKey && lastEl === activeEl ) {
event.preventDefault();
closMenu.focus();
}
if ( shiftKey && tabKey && firstEl === activeEl ) {
event.preventDefault();
closMenu.focus();
}
if ( shiftKey && tabKey && closMenu === activeEl ) {
event.preventDefault();
lastEl.focus();
}
closMenu.addEventListener( 'click', function() {
mobileIcon.focus();
} );
});
}
document.addEventListener(
'DOMContentLoaded',
function() {
owpSidrDropdown();
}
);