1(function($) { 2 3 "use strict"; 4 5 $.fn.mobileMenu = function(options) { 6 7 var settings = $.extend({ 8 pageSelector: '#page', 9 targetWrapper: '#main-menu', 10 targetMenu: '.block-menu', 11 accordion: 'false' 12 }, options); 13 14 // if ($(window).width() <= 991) { 15 if ($(window).width() <= 1200) { 16 $(settings.targetWrapper).addClass('mobile-main-menu'); 17 } 18 $(window).resize(function() { 19 //if ($(window).width() <= 991) { 20 if ($(window).width() <= 1200) { 21 $(settings.targetWrapper).addClass('mobile-main-menu'); 22 } else { 23 $(settings.targetWrapper).removeClass('mobile-main-menu'); 24 $('body').css('overflow', 'visible'); 25 $(settings.pageSelector).removeClass('toggled'); 26 $(settings.pageSelector).find('.overlay').remove(); 27 $(settings.pageSelector).css('position', ''); 28 } 29 }); 30 31 var toggleButton = this; 32 this.once('load').on('click', function(e) { 33 var wrapper = $(settings.pageSelector); 34 if (!wrapper.hasClass('toggled')) { 35 wrapper.addClass('toggled').css('position', 'relative'); 36 $(settings.targetWrapper).addClass('mobile-main-menu'); 37 if (wrapper.find('.overlay').length == 0) { 38 var overlay = $('<div class="overlay"></div>'); 39 overlay.prependTo(wrapper); 40 overlay.click(function() { 41 toggleButton.trigger('click'); 42 }); 43 $('body').css('overflow', 'hidden'); 44 } 45 46 } else { 47 var overlay = wrapper.find('.overlay'); 48 wrapper.css({ 49 'width': '', 50 'position': '' 51 }); 52 wrapper.removeClass('toggled'); 53 54 if (overlay.length > 0) { 55 overlay.remove(); 56 $('body').css('overflow', ''); 57 } 58 } 59 e.preventDefault(); 60 e.stopPropagation(); 61 }); 62 63 $('.btn-close').once('btn-close').on('click', function(e) { 64 toggleButton.trigger('click'); 65 e.preventDefault(); 66 return false; 67 }); 68 } 69 70 $.fn.accordionMenu = function() { 71 72 this.find('.content > ul.menu > li.expanded > ul.menu').each(function() { 73 var $ele = $(this); 74 var $link = $ele.prev(); 75 if ($link.hasClass('active') || $link.hasClass('active-trail')) { 76 $ele.parent().addClass('open'); 77 $link.addClass('active'); 78 $ele.wrap('<div class="submenu-wrap" style="overflow:hidden;height:auto;position:relative;"></div>'); 79 console.log($link); 80 } else { 81 console.log($ele); 82 $ele.wrap('<div class="submenu-wrap" style="overflow:hidden;height:0;position:relative;"></div>'); 83 } 84 }); 85 86 this.find('.content > ul.menu > li.expanded > a').on('click', function(e) { 87 var $li = $(this).parent(); 88 89 if (!$li.hasClass('open')) { 90 collapse($(this)); 91 expand($(this)); 92 e.preventDefault(); 93 } 94 e.stopPropagation(); 95 }); 96 97 return this; 98 }; 99 100 function expand(ele) { 101 var $li = ele.parent(); 102 var menuHeight = getMenuHeight($li.find('ul.menu')); 103 104 ele.addClass('active'); 105 $li.find('a.active-trail').addClass('active'); 106 $li.toggleClass('open'); 107 $li.find('div.submenu-wrap').animate({ 108 height: menuHeight 109 }); 110 } 111 112 function collapse(ele) { 113 var $li = ele.parent(); 114 var $oldLi = $li.parent().find('li.open').removeClass('open'); 115 116 $oldLi.find('div.submenu-wrap').animate({ 117 height: 0 118 }); 119 $oldLi.find('a.active').removeClass('active'); 120 } 121 122 //Helper 123 function getMenuHeight(ele) { 124 var $ele = $(ele), 125 height = "auto"; 126 if ($ele.is(":visible")) { 127 height = $ele.outerHeight(); 128 } else { 129 var tmp = { 130 position: $ele.css("position"), 131 visibility: $ele.css("visibility"), 132 display: $ele.css("display") 133 }; 134 135 height = $ele.css({ 136 position: 'absolute', 137 visibility: 'hidden', 138 display: 'block' 139 }).outerHeight(); 140 141 $ele.css(tmp); // reset element 142 } 143 144 return height; 145 } 146 147}(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.