98 lines
No EOL
3.1 KiB
JavaScript
98 lines
No EOL
3.1 KiB
JavaScript
/**
|
|
* Above Header Header Styling
|
|
*
|
|
* @package Astra Addon
|
|
* @since 1.0.0
|
|
*/
|
|
|
|
( function() {
|
|
var initial_window_width = screen.width;
|
|
var toggle_menu_style = document.querySelectorAll( '.ast-no-toggle-menu-enable' ) || 0;
|
|
|
|
if( ! toggle_menu_style.length ) {
|
|
return;
|
|
}
|
|
|
|
var __main_header_all = document.querySelectorAll( '.main-header-bar-navigation' );
|
|
var menu_toggle_all = document.querySelectorAll( '.main-header-bar-navigation' );
|
|
|
|
for (var i = 0; i < menu_toggle_all.length; i++) {
|
|
|
|
var parentList = __main_header_all[i].querySelectorAll( '.main-header-menu .menu-item' );
|
|
|
|
var astra_menu_toggle = __main_header_all[i].querySelectorAll( '.main-header-menu .ast-menu-toggle' );
|
|
|
|
// Add Eevetlisteners for Submenu.
|
|
if (astra_menu_toggle.length > 0) {
|
|
for (var k = 0; k < astra_menu_toggle.length; k++) {
|
|
astra_menu_toggle[k].addEventListener('click', AstraToggleSubMenu, false);
|
|
};
|
|
}
|
|
|
|
var astra_menu_toggle = __main_header_all[i].querySelectorAll( '.main-header-menu > .menu-item > .ast-menu-toggle' );
|
|
MenuNoToggle( astra_menu_toggle );
|
|
}
|
|
|
|
function MenuNoToggle( astra_menu_toggle ) {
|
|
if( parseInt( window.innerWidth ) <= 480 ) {
|
|
for (var i = 0; i < astra_menu_toggle.length; i++) {
|
|
|
|
astra_menu_toggle[i].addEventListener( 'click', function ( event ) {
|
|
event.preventDefault();
|
|
var position = this.nextElementSibling.getBoundingClientRect();
|
|
var is_set = this.nextElementSibling.getAttribute('data-set');
|
|
if( null === is_set ) {
|
|
|
|
// Left
|
|
this.nextElementSibling.style.left = '-' + parseFloat( position.left ) + 'px';
|
|
|
|
var li_width = document.documentElement.clientWidth;
|
|
|
|
// set width of submenu to full screen.
|
|
this.nextElementSibling.style.width = li_width + 'px';
|
|
|
|
// Set flag.
|
|
this.nextElementSibling.setAttribute('data-set', true);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
window.addEventListener( 'resize', function() {
|
|
|
|
if ( initial_window_width != screen.width ) {
|
|
|
|
// Update the window width for next time
|
|
initial_window_width = screen.width
|
|
|
|
if ( 'BODY' !== document.activeElement.tagName ) {
|
|
return;
|
|
}
|
|
|
|
// Select all sub-menus within .main-header-bar and remove inline styles.
|
|
document.querySelectorAll( '.main-header-bar .sub-menu' )
|
|
?.forEach( ( subMenu ) => subMenu.removeAttribute( 'style' ) );
|
|
|
|
// Select all list items within .main-header-bar and remove the 'ast-submenu-expanded' class.
|
|
document.querySelectorAll( '.main-header-bar li' )
|
|
?.forEach( ( listItem ) => listItem.classList.remove( 'ast-submenu-expanded' ) );
|
|
|
|
const __main_header_all = document.querySelectorAll( '.main-header-bar-navigation' );
|
|
const menu_toggle_all = document.querySelectorAll( '.main-header-bar-navigation' );
|
|
|
|
for ( let i = 0; i < menu_toggle_all.length; i++ ) {
|
|
const astra_menu_toggle = __main_header_all[i].querySelectorAll( '.main-header-menu > .menu-item > .ast-menu-toggle' );
|
|
|
|
if ( astra_menu_toggle.length !== 0 ) {
|
|
for ( let i = 0; i < astra_menu_toggle.length; i++ ) {
|
|
astra_menu_toggle[i].nextElementSibling.removeAttribute( 'data-set' );
|
|
}
|
|
|
|
MenuNoToggle( astra_menu_toggle );
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
})(); |