1jQuery(function($) { 2 3 "use strict"; 4 5 $('.main-navigation > ul > li.menu-item-megamenu').each( function() { 6 7 // If number of children is bigger than the available columns (max 4), wrap them up in one column 8 var menuColumns = 4; 9 var menuChildrenNumber = $(this).find('> .sub-menu > li.menu-item').length; 10 var that = $(this); 11 12 if( $(this).find('.menu-item-info-column').length ) menuColumns--; 13 if( $(this).find('.menu-item-image-column').length ) menuColumns--; 14 15 if( menuChildrenNumber > menuColumns ) { 16 if( $(this).find('> .sub-menu').hasClass('megamenu-with-info-column') ) { 17 $(this).find('.menu-item-info-column').after('<li class="menu-item-inner-wrapper"><ul class="menu-item-inner-submenu"></ul></li>'); 18 } else { 19 $(this).find('> .sub-menu').prepend('<li class="menu-item-inner-wrapper"><ul class="menu-item-inner-submenu"></ul></li>'); 20 } 21 $(this).find('> .sub-menu > li.menu-item').each( function() { 22 $(this).detach().appendTo( that.find('.menu-item-inner-submenu') ); 23 }); 24 } 25 26 // determine the column megamenu class 27 var childrenNumber = $(this).find('> .sub-menu > li').length; 28 $(this).addClass('megamenu-'+childrenNumber+'-col'); 29 30 // assign parent image to image column 31 if( $(this).find('> .sub-menu .menu-item-inner-wrapper').length ) { 32 $(this).find('> .sub-menu .menu-item-image-column').css( 'max-height', $(this).find('> .sub-menu .menu-item-inner-wrapper').outerHeight() ); 33 } else { 34 $(this).find('> .sub-menu .menu-item-image-column').css( 'max-height', $(this).find('> .sub-menu > .menu-item').outerHeight() ); 35 } 36 if( $(this).attr('data-item-image') && $(this).find('> .sub-menu').hasClass('megamenu-with-image-column') ) { 37 $(this).find('> .sub-menu .menu-item-image-column').empty().append( '<img src="' + $(this).attr('data-item-image') + '" />'); 38 } 39 }); 40 41 // change image on hover 42 $('.main-navigation > ul > li.menu-item-has-children .sub-menu li.menu-item a').on( 'mouseenter', function() { 43 if( $(this).parents('.menu-item-parent').find('> .sub-menu').hasClass('megamenu-with-image-column') ) { 44 if( $(this).parent().attr('data-item-image') ) { 45 $(this).parents('.menu-item-parent').find('.sub-menu .menu-item-image-column').empty().append( '<img class="animate" src="' + $(this).parent().attr('data-item-image') + '" />'); 46 } else { 47 if( $(this).parents('.menu-item-parent').attr('data-item-image') && ( $(this).parents('.menu-item-parent').attr('data-item-image') != $(this).parents('.menu-item-parent').find('.sub-menu .menu-item-image-column img').attr('src') ) ) { 48 $(this).parents('.menu-item-parent').find('.sub-menu .menu-item-image-column').empty().append( '<img class="animate" src="' + $(this).parents('.menu-item-parent').attr('data-item-image') + '" />'); 49 } 50 } 51 } 52 }); 53 54 // set megamenu dropdown's max width and height 55 if( $('.main-navigation > ul > li.menu-item-megamenu > .sub-menu').length ) { 56 $('.main-navigation > ul > li.menu-item-megamenu > .sub-menu').css( 'max-height', $(window).height() - $('.main-navigation > ul > li.menu-item-megamenu > .sub-menu').offset().top - 100 ); 57 $('.main-navigation > ul > li.menu-item-megamenu > .sub-menu').css( 'max-width', $(window).width() ); 58 59 $('.main-navigation > ul > li.menu-item-megamenu .sub-menu li.menu-item-inner-wrapper').each(function() { 60 $(this).find('ul.menu-item-inner-submenu').css( 'max-height', $(window).height() - $('.main-navigation > ul > li.menu-item-megamenu > .sub-menu').offset().top - 100 ); 61 }); 62 } 63 64});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.