Linux hkvL61zh9Vexzf 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018 x86_64 Path : /www/wwwroot/fashion-kingdom.com/wp-content/plugins/kitify/assets/js/addons/ |
Current File : /www/wwwroot/fashion-kingdom.com/wp-content/plugins/kitify/assets/js/addons/nav-menu.js |
( function( $, elementor ) { "use strict"; $( window ).on( 'elementor/frontend/init', function (){ elementor.hooks.addAction( 'frontend/element_ready/kitify-nav-menu.default', function ( $scope ){ if ( $scope.data( 'initialized' ) ) { return; } $scope.data( 'initialized', true ); var hoverClass = 'kitify-nav-hover', hoverOutClass = 'kitify-nav-hover-out', mobileActiveClass = 'kitify-mobile-menu-active', _has_mobile_bkp = false; if($scope.find('.kitify-mobile-menu').length){ _has_mobile_bkp = $scope.find('.kitify-mobile-menu').data('mobile-breakpoint'); } function checkActiveMobileTrigger(){ if(_has_mobile_bkp !== false && $(window).width() <= _has_mobile_bkp){ $scope.find('.kitify-mobile-menu').addClass('kitify-active--mbmenu'); } else{ $scope.find('.kitify-mobile-menu').removeClass('kitify-active--mbmenu'); } } checkActiveMobileTrigger(); $(window).on('resize', checkActiveMobileTrigger); $scope.find( '.kitify-nav:not(.kitify-nav--vertical-sub-bottom)' ).hoverIntent({ over: function() { $( this ).addClass( hoverClass ); }, out: function() { var $this = $( this ); $this.removeClass( hoverClass ); $this.addClass( hoverOutClass ); setTimeout( function() { $this.removeClass( hoverOutClass ); }, 200 ); }, timeout: 200, selector: '.menu-item-has-children' }); if ( Kitify.mobileAndTabletCheck() ) { $scope.find( '.kitify-nav:not(.kitify-nav--vertical-sub-bottom)' ).on( 'touchstart.kitifyNavMenu', '.menu-item > a', touchStartItem ); $scope.find( '.kitify-nav:not(.kitify-nav--vertical-sub-bottom)' ).on( 'touchend.kitifyNavMenu', '.menu-item > a', touchEndItem ); $( document ).on( 'touchstart.kitifyNavMenu', prepareHideSubMenus ); $( document ).on( 'touchend.kitifyNavMenu', hideSubMenus ); } else { $scope.find( '.kitify-nav:not(.kitify-nav--vertical-sub-bottom)' ).on( 'click.kitifyNavMenu', '.menu-item > a', clickItem ); } if ( ! Kitify.isEditMode() ) { initMenuAnchorsHandler(); } function touchStartItem( event ) { var $currentTarget = $( event.currentTarget ), $this = $currentTarget.closest( '.menu-item' ); $this.data( 'offset', $( window ).scrollTop() ); $this.data( 'elemOffset', $this.offset().top ); } function touchEndItem( event ) { var $this, $siblingsItems, $link, $currentTarget, subMenu, offset, elemOffset, $hamburgerPanel; event.preventDefault(); $currentTarget = $( event.currentTarget ); $this = $currentTarget.closest( '.menu-item' ); $siblingsItems = $this.siblings( '.menu-item.menu-item-has-children' ); $link = $( '> a', $this ); subMenu = $( '.kitify-nav__sub:first', $this ); offset = $this.data( 'offset' ); elemOffset = $this.data( 'elemOffset' ); $hamburgerPanel = $this.closest( '.kitify-hamburger-panel' ); if ( offset !== $( window ).scrollTop() || elemOffset !== $this.offset().top ) { return false; } if ( $siblingsItems[0] ) { $siblingsItems.removeClass( hoverClass ); $( '.menu-item-has-children', $siblingsItems ).removeClass( hoverClass ); } if ( ! $( '.kitify-nav__sub', $this )[0] || $this.hasClass( hoverClass ) ) { $link.trigger( 'click' ); // Need for a smooth scroll when clicking on an anchor link window.location.href = $link.attr( 'href' ); if ( $scope.find( '.kitify-nav-wrap' ).hasClass( mobileActiveClass ) ) { $scope.find( '.kitify-nav-wrap' ).removeClass( mobileActiveClass ); } if ( $hamburgerPanel[0] && $hamburgerPanel.hasClass( 'open-state' ) ) { $hamburgerPanel.removeClass( 'open-state' ); $( 'html' ).removeClass( 'kitify-hamburger-panel-visible' ); } return false; } if ( subMenu[0] ) { $this.addClass( hoverClass ); } } function clickItem( event ) { var $currentTarget = $( event.currentTarget ), $menuItem = $currentTarget.closest( '.menu-item' ), $hamburgerPanel = $menuItem.closest( '.kitify-hamburger-panel' ); if ( ! $menuItem.hasClass( 'menu-item-has-children' ) || $menuItem.hasClass( hoverClass ) ) { if ( $hamburgerPanel[0] && $hamburgerPanel.hasClass( 'open-state' ) ) { $hamburgerPanel.removeClass( 'open-state' ); $( 'html' ).removeClass( 'kitify-hamburger-panel-visible' ); } } } var scrollOffset; function prepareHideSubMenus( event ) { scrollOffset = $( window ).scrollTop(); } function hideSubMenus( event ) { var $menu = $scope.find( '.kitify-nav' ); if ( 'touchend' === event.type && scrollOffset !== $( window ).scrollTop() ) { return; } if ( $( event.target ).closest( $menu ).length ) { return; } var $openMenuItems = $( '.menu-item-has-children.' + hoverClass, $menu ); if ( ! $openMenuItems[0] ) { return; } $openMenuItems.removeClass( hoverClass ); $openMenuItems.addClass( hoverOutClass ); setTimeout( function() { $openMenuItems.removeClass( hoverOutClass ); }, 200 ); if ( $menu.hasClass( 'kitify-nav--vertical-sub-bottom' ) ) { $( '.kitify-nav__sub', $openMenuItems ).slideUp( 200 ); } event.stopPropagation(); } // START Vertical Layout: Sub-menu at the bottom $scope.find( '.kitify-nav--vertical-sub-bottom' ).on( 'click.kitifyNavMenu', '.menu-item > a', verticalSubBottomHandler ); function verticalSubBottomHandler( event ) { var $currentTarget = $( event.currentTarget ), $menuItem = $currentTarget.closest( '.menu-item' ), $siblingsItems = $menuItem.siblings( '.menu-item.menu-item-has-children' ), $subMenu = $( '.kitify-nav__sub:first', $menuItem ), $hamburgerPanel = $menuItem.closest( '.kitify-hamburger-panel' ); if ( ! $menuItem.hasClass( 'menu-item-has-children' ) || $menuItem.hasClass( hoverClass ) ) { if ( $scope.find( '.kitify-nav-wrap' ).hasClass( mobileActiveClass ) ) { $scope.find( '.kitify-nav-wrap' ).removeClass( mobileActiveClass ); } if ( $hamburgerPanel[0] && $hamburgerPanel.hasClass( 'open-state' ) ) { $hamburgerPanel.removeClass( 'open-state' ); $( 'html' ).removeClass( 'kitify-hamburger-panel-visible' ); } return; } event.preventDefault(); event.stopPropagation(); if ( $siblingsItems[0] ) { $siblingsItems.removeClass( hoverClass ); $( '.menu-item-has-children', $siblingsItems ).removeClass( hoverClass ); $( '.kitify-nav__sub', $siblingsItems ).slideUp( 200 ); } if ( $subMenu[0] ) { $subMenu.slideDown( 200 ); $menuItem.addClass( hoverClass ); } } $( document ).on( 'click.kitifyNavMenu', hideVerticalSubBottomMenus ); function hideVerticalSubBottomMenus( event ) { if ( ! $scope.find( '.kitify-nav' ).hasClass( 'kitify-nav--vertical-sub-bottom' ) ) { return; } hideSubMenus( event ); } // END Vertical Layout: Sub-menu at the bottom // Mobile trigger click event $( '.kitify-nav__mobile-trigger', $scope ).on( 'click.kitifyNavMenu', function( event ) { $( this ).closest( '.kitify-nav-wrap' ).toggleClass( mobileActiveClass ); } ); // START Mobile Layout: Left-side, Right-side if ( 'ontouchend' in window ) { $( document ).on( 'touchend.kitifyMobileNavMenu', removeMobileActiveClass ); } else { $( document ).on( 'click.kitifyMobileNavMenu', removeMobileActiveClass ); } function removeMobileActiveClass( event ) { var mobileLayout = $scope.find( '.kitify-nav-wrap' ).data( 'mobile-layout' ), $navWrap = $scope.find( '.kitify-nav-wrap' ), $trigger = $scope.find( '.kitify-nav__mobile-trigger' ), $menu = $scope.find( '.kitify-nav' ); if ( 'left-side' !== mobileLayout && 'right-side' !== mobileLayout ) { return; } if ( 'touchend' === event.type && scrollOffset !== $( window ).scrollTop() ) { return; } if ( $( event.target ).closest( $trigger ).length || $( event.target ).closest( $menu ).length ) { return; } if ( ! $navWrap.hasClass( mobileActiveClass ) ) { return; } $navWrap.removeClass( mobileActiveClass ); event.stopPropagation(); } $( '.kitify-nav__mobile-close-btn', $scope ).on( 'click.kitifyMobileNavMenu', function( event ) { $( this ).closest( '.kitify-nav-wrap' ).removeClass( mobileActiveClass ); } ); // END Mobile Layout: Left-side, Right-side // START Mobile Layout: Full-width var initMobileFullWidthCss = false; setFullWidthMenuPosition(); $( window ).on( 'resize.kitifyMobileNavMenu', setFullWidthMenuPosition ); function setFullWidthMenuPosition() { var mobileLayout = $scope.find( '.kitify-nav-wrap' ).data( 'mobile-layout' ); if ( 'full-width' !== mobileLayout ) { return; } var $menu = $scope.find( '.kitify-nav' ), currentDeviceMode = elementorFrontend.getCurrentDeviceMode(); if ( 'mobile' !== currentDeviceMode ) { if ( initMobileFullWidthCss ) { $menu.css( { 'left': '' } ); initMobileFullWidthCss = false; } return; } if ( initMobileFullWidthCss ) { $menu.css( { 'left': '' } ); } var offset = - $menu.offset().left; $menu.css( { 'left': offset } ); initMobileFullWidthCss = true; } // END Mobile Layout: Full-width // Menu Anchors Handler function initMenuAnchorsHandler() { var $anchorLinks = $scope.find( '.menu-item-link[href*="#"]' ); if ( $anchorLinks[0] ) { $anchorLinks.each( function() { if ( '' !== this.hash && location.pathname === this.pathname ) { menuAnchorHandler( $( this ) ); } } ); } } function menuAnchorHandler( $anchorLink ) { var anchorHash = $anchorLink[0].hash, activeClass = 'current-menu-item', rootMargin = '-50% 0% -50%', $anchor; try { $anchor = $( decodeURIComponent( anchorHash ) ); } catch (e) { return; } if ( !$anchor[0] ) { return; } if ( $anchor.hasClass( 'elementor-menu-anchor' ) ) { rootMargin = '300px 0% -300px'; } var observer = new IntersectionObserver( function( entries ) { if ( entries[0].isIntersecting ) { $anchorLink.parent( '.menu-item' ).addClass( activeClass ); } else { $anchorLink.parent( '.menu-item' ).removeClass( activeClass ); } }, { rootMargin: rootMargin } ); observer.observe( $anchor[0] ); } if ( Kitify.isEditMode() ) { $scope.data( 'initialized', false ); } } ); } ); }( jQuery, window.elementorFrontend ) );