site_oueb_2/wp-content/plugins/ocean-extra/assets/js/megaMenu.js

86 lines
3.0 KiB
JavaScript
Raw Normal View History

2022-11-22 20:23:31 +01:00
var $j = jQuery.noConflict(),
$window = $j( window );
$j( document ).ready( function() {
"use strict";
// Mega menu
oceanwpMegaMenu();
} );
/* ==============================================
MEGA MENU
============================================== */
function oceanwpMegaMenu() {
"use strict"
// Mega menu in top bar menu
$j( '#top-bar-nav .megamenu-li.full-mega' ).hover( function() {
var topBar = $j( '#top-bar' ),
menuWidth = topBar.width(),
menuPosition = topBar.offset(),
menuItemPosition = $j( this ).offset(),
PositionLeft = menuItemPosition.left-menuPosition.left+1;
$j( this ).find( '.megamenu' ).css( { left: '-'+PositionLeft+'px', width: menuWidth } );
} );
// Mega menu in principal menu
$j( '#site-navigation .megamenu-li.full-mega' ).hover( function() {
var siteHeader = $j( '#site-header-inner' ),
menuWidth = siteHeader.width(),
menuPosition = siteHeader.offset(),
menuItemPosition = $j( this ).offset(),
PositionLeft = menuItemPosition.left-menuPosition.left+1;
if ( $j( '#site-header' ).hasClass( 'medium-header' ) ) {
siteHeader = $j( '#site-navigation-wrap > .container' ),
menuWidth = siteHeader.width(),
menuPosition = siteHeader.offset(),
PositionLeft = menuItemPosition.left-menuPosition.left+1;
}
$j( this ).find( '.megamenu' ).css( { left: '-'+PositionLeft+'px', width: menuWidth } );
} );
// Megamenu auto width
$j( '.navigation .megamenu-li.auto-mega .megamenu' ).each( function() {
var li = $j( this ).parent();
var liOffset = li.offset().left;
var liOffsetTop = li.offset().top;
var liWidth = $j( this ).parent().width();
var dropdowntMarginLeft = liWidth/2;
var dropdownWidth = $j( this ).outerWidth();
var dropdowntLeft = liOffset - dropdownWidth/2;
if ( dropdowntLeft < 0 ) {
var left = liOffset - 10;
dropdowntMarginLeft = 0;
} else {
var left = dropdownWidth/2;
}
if ( oceanwpLocalize.isRTL ) {
$j( this ).css( {
'right': - left,
'marginRight': dropdowntMarginLeft
} );
} else {
$j( this ).css( {
'left': - left,
'marginLeft': dropdowntMarginLeft
} );
}
var dropdownRight = ( $window.width() ) - ( liOffset - left + dropdownWidth + dropdowntMarginLeft );
if ( dropdownRight < 0 ) {
$j( this ).css( {
'left': 'auto',
'right': - ( $window.width() - liOffset - liWidth - 10 )
} );
}
} );
}