1(function($) { 2 3 "use strict"; 4 5 $.fn.mobileMenu = function(options) { 6 7 var settings = $.extend({ 8 targetWrapper: '.navbar-we-mega-menu', 9 accordionMenu: 'true', 10 toggledClass : 'toggled' 11 }, options); 12 13 if ($(window).width() <= 1025) { 14 $(settings.targetWrapper).addClass('mobile-main-menu'); 15 } 16 17 var toggleButton = this; 18 19 $(window).resize(function() { 20 if ($(window).width() <= 1025) { 21 $(settings.targetWrapper).addClass('mobile-main-menu'); 22 } else { 23 $(settings.targetWrapper).removeClass('mobile-main-menu'); 24 $('html, body').css('overflow', ''); 25 $('html, body').css('height', ''); 26 $('html, body').css('position', ''); 27 $(settings.pageSelector).removeClass(settings.toggledClass); 28 $(settings.pageSelector).find('.overlay').remove(); 29 $(settings.pageSelector).css('position', ''); 30 item.removeClass('open'); 31 item.find('ul').css('display', ''); 32 } 33 }); 34 35 this.off('click.mobileMenu'); 36 this.on('click.mobileMenu', function(e) { 37 var wrapper = $(settings.pageSelector); 38 if (!wrapper.hasClass(settings.toggledClass)) { 39 wrapper.addClass(settings.toggledClass).css('position', 'relative'); 40 $(settings.targetWrapper).addClass('mobile-main-menu'); 41 if (wrapper.find('.overlay').length == 0) { 42 var overlay = $('<div class="overlay"></div>'); 43 overlay.prependTo(wrapper); 44 overlay.click(function() { 45 toggleButton.trigger('click'); 46 }); 47 $('html, body').css('overflow', 'hidden'); 48 $('html, body').css('btn-close', 'hidden'); 49 $('html, body').css('height', '100%'); 50 $('html, body').css('position', 'relative'); 51 } 52 if (wrapper.find('.btn-close').length == 0) { 53 var btnClose = $('<span class="btn-close"></span>'); 54 btnClose.prependTo(wrapper); 55 56 $('.btn-close').on('click', function(e) { 57 toggleButton.trigger('click'); 58 e.preventDefault(); 59 return false; 60 }); 61 } 62 63 } else { 64 var overlay = wrapper.find('.overlay'); 65 wrapper.css({ 66 'width': '', 67 'position': '' 68 }); 69 wrapper.removeClass(settings.toggledClass); 70 71 if (overlay.length > 0) { 72 wrapper.find('.btn-close').remove(); 73 overlay.remove(); 74 $('html, body').css('overflow', ''); 75 $('html, body').css('height', ''); 76 $('html, body').css('position', ''); 77 } 78 } 79 e.preventDefault(); 80 e.stopPropagation(); 81 }); 82 83 if (settings.accordionMenu == 'true') { 84 var menu = $(settings.targetWrapper).find('ul.we-mega-menu-ul').first(); 85 var item = menu.find('> li[data-submenu=1]'); 86 var item_active = menu.find('> li[data-submenu=1].active'); 87 if ($(window).width() <= 1025) { 88 item_active.addClass('open'); 89 item_active.find('> ul').css('display', 'block'); 90 } 91 item.click(function() { 92 if ($(window).width() <= 1025) { 93 var $this = $(this); 94 var $sub_menu_inner = $this.find('> .we-mega-menu-submenu'); 95 if (!$this.hasClass('open')) { 96 $(item).not($this).removeClass('open'); 97 item.find('> .we-mega-menu-submenu').slideUp(); 98 $this.toggleClass('open'); 99 if ($this.hasClass('open')) { 100 $sub_menu_inner.slideDown(); 101 setTimeout(function() { 102 $(settings.targetWrapper).animate({ 103 scrollTop: $this.offset().top 104 }, 700); 105 }, 500); 106 107 } else { 108 $sub_menu_inner.slideUp(); 109 } 110 return false; 111 } 112 } 113 }); 114 } 115 } 116 117}(jQuery));
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.