1jQuery(document).ready(function($) { 2 3 var ResponsiveMenuPro = { 4 trigger: '#responsive-menu-pro-button', 5 animationSpeed: 500, 6 breakpoint: 1290, 7 isOpen: false, 8 activeClass: 'is-active', 9 container: '#responsive-menu-pro-container', 10 openClass: 'responsive-menu-pro-open', 11 activeArrow: '<span class="fas fa-angle-double-up"></span>', 12 inactiveArrow: '<span class="fas fa-angle-double-down"></span>', 13 wrapper: '#responsive-menu-pro-wrapper', 14 linkElement: '.responsive-menu-pro-item-link', 15 subMenuTransitionTime: 200, 16 originalHeight: '', 17 openMenu: function() { 18 $(this.trigger).addClass(this.activeClass); 19 $('html').addClass(this.openClass); 20 $('.responsive-menu-pro-button-icon-active').hide(); 21 $('.responsive-menu-pro-button-icon-inactive').show(); 22 23 24 25 this.setWrapperTranslate(); 26 27 28 29 30 this.isOpen = true; 31 }, 32 closeMenu: function() { 33 $(this.trigger).removeClass(this.activeClass); 34 $('html').removeClass(this.openClass); 35 $('.responsive-menu-pro-button-icon-inactive').hide(); 36 $('.responsive-menu-pro-button-icon-active').show(); 37 38 39 this.clearWrapperTranslate(); 40 41 $("#responsive-menu-pro > li").removeAttr('style'); 42 43 44 this.isOpen = false; 45 }, 46 triggerMenu: function() { 47 this.isOpen ? this.closeMenu() : this.openMenu(); 48 }, 49 50 51 triggerSubArrow: function(subarrow) { 52 var sub_menu = $(subarrow).parent().siblings('.responsive-menu-pro-submenu'); 53 var self = this; 54 55 56 57 58 59 if(sub_menu.hasClass('responsive-menu-pro-submenu-open')) { 60 sub_menu.slideUp(self.subMenuTransitionTime, 'linear',function() { 61 $(this).css('display', ''); 62 }).removeClass('responsive-menu-pro-submenu-open'); 63 $(subarrow).html(this.inactiveArrow); 64 $(subarrow).removeClass('responsive-menu-pro-subarrow-active'); 65 } else { 66 sub_menu.slideDown(self.subMenuTransitionTime, 'linear').addClass('responsive-menu-pro-submenu-open'); 67 $(subarrow).html(this.activeArrow); 68 $(subarrow).addClass('responsive-menu-pro-subarrow-active'); 69 } 70 71 72 }, 73 menuHeight: function() { 74 return $(this.container).height(); 75 }, 76 menuWidth: function() { 77 return $(this.container).width(); 78 }, 79 wrapperHeight: function() { 80 return $(this.wrapper).height(); 81 }, 82 setWrapperTranslate: function() { 83 switch('left') { 84 case 'left': 85 translate = 'translateX(' + this.menuWidth() + 'px)'; break; 86 case 'right': 87 translate = 'translateX(-' + this.menuWidth() + 'px)'; break; 88 case 'top': 89 translate = 'translateY(' + this.wrapperHeight() + 'px)'; break; 90 case 'bottom': 91 translate = 'translateY(-' + this.menuHeight() + 'px)'; break; 92 } 93 94 95 }, 96 clearWrapperTranslate: function() { 97 var self = this; 98 99 100 }, 101 102 103 104 init: function() { 105 106 var self = this; 107 108 109 110 111 112 113 114 115 116 117 118 $(this.trigger).on('click', function(e){ 119 e.stopPropagation(); 120 self.triggerMenu(); 121 }); 122 123 $(this.trigger).on( 'mouseup', function(){ 124 $(self.trigger).trigger('blur'); 125 }); 126 127 $('.responsive-menu-pro-subarrow').on('click', function(e) { 128 e.preventDefault(); 129 e.stopPropagation(); 130 self.triggerSubArrow(this); 131 }); 132 133 $(window).on( 'resize', function() { 134 if($(window).width() >= self.breakpoint) { 135 if(self.isOpen){ 136 self.closeMenu(); 137 } 138 $('#responsive-menu-pro, .responsive-menu-pro-submenu').removeAttr('style'); 139 } else { 140 141 if($('.responsive-menu-pro-open').length > 0){ 142 self.setWrapperTranslate(); 143 } 144 } 145 }); 146 147 148 149 150 151 152 153 /* Desktop menu : hide on scroll down / show on scroll Up */ 154 155 $(this.trigger).on( 'mousedown', function(e){ 156 e.preventDefault(); 157 e.stopPropagation(); 158 }); 159 160 if (jQuery('#responsive-menu-pro-button').css('display') != 'none') { 161 162 $('#responsive-menu-pro-button,#responsive-menu-pro a.responsive-menu-pro-item-link,#responsive-menu-pro-wrapper input').on( 'focus', function() { 163 $(this).addClass('is-active'); 164 $('html').addClass('responsive-menu-pro-open'); 165 $('#responsive-menu-pro li').css({"opacity": "1", "margin-left": "0"}); 166 }); 167 168 $('a,input,button').on( 'focusout', function( event ) { 169 if ( ! $(this).parents('#responsive-menu-pro-container').length ) { 170 $('html').removeClass('responsive-menu-pro-open'); 171 $('#responsive-menu-pro-button').removeClass('is-active'); 172 } 173 }); 174 } else { 175 } 176 177 $('#responsive-menu-pro a.responsive-menu-pro-item-link').on( 'keydown', function(event) { 178 if ( [13,27,32,35,36,37,38,39,40].indexOf( event.keyCode) == -1) { 179 return; 180 } 181 var link = $(this); 182 switch(event.keyCode) { 183 case 13: 184 link.click(); 185 break; 186 case 27: 187 var dropdown = link.parent('li').parents('.responsive-menu-pro-submenu'); 188 if ( dropdown.length > 0 ) { 189 dropdown.hide(); 190 dropdown.prev().focus(); 191 } 192 break; 193 case 32: 194 var dropdown = link.parent('li').find('.responsive-menu-pro-submenu'); 195 if ( dropdown.length > 0 ) { 196 dropdown.show(); 197 dropdown.find('a, input, button, textarea').filter(':visible').first().focus(); 198 } 199 break; 200 case 35: 201 var dropdown = link.parent('li').find('.responsive-menu-pro-submenu'); 202 if ( dropdown.length > 0 ) { 203 dropdown.hide(); 204 } 205 $(this).parents('#responsive-menu-pro').find('a.responsive-menu-pro-item-link').filter(':visible').last().focus(); 206 break; 207 case 36: 208 var dropdown = link.parent('li').find('.responsive-menu-pro-submenu'); 209 if( dropdown.length > 0 ) { 210 dropdown.hide(); 211 } 212 213 $(this).parents('#responsive-menu-pro').find('a.responsive-menu-pro-item-link').filter(':visible').first().focus(); 214 break; 215 case 37: 216 event.preventDefault(); 217 event.stopPropagation(); 218 219 if ( link.parent('li').prevAll('li').filter(':visible').first().length == 0) { 220 link.parent('li').nextAll('li').filter(':visible').last().find('a').first().focus(); 221 } else { 222 link.parent('li').prevAll('li').filter(':visible').first().find('a').first().focus(); 223 } 224 225 if ( link.parent('li').children('.responsive-menu-pro-submenu').length ) { 226 link.parent('li').children('.responsive-menu-pro-submenu').hide(); 227 } 228 break; 229 case 38: 230 var dropdown = link.parent('li').find('.responsive-menu-pro-submenu'); 231 if( dropdown.length > 0 ) { 232 event.preventDefault(); 233 event.stopPropagation(); 234 dropdown.find('a, input, button, textarea').filter(':visible').first().focus(); 235 } else { 236 if ( link.parent('li').prevAll('li').filter(':visible').first().length == 0) { 237 link.parent('li').nextAll('li').filter(':visible').last().find('a').first().focus(); 238 } else { 239 link.parent('li').prevAll('li').filter(':visible').first().find('a').first().focus(); 240 } 241 } 242 break; 243 case 39: 244 event.preventDefault(); 245 event.stopPropagation(); 246 if( link.parent('li').nextAll('li').filter(':visible').first().length == 0) { 247 link.parent('li').prevAll('li').filter(':visible').last().find('a').first().focus(); 248 } else { 249 link.parent('li').nextAll('li').filter(':visible').first().find('a').first().focus(); 250 } 251 252 if ( link.parent('li').children('.responsive-menu-pro-submenu').length ) { 253 link.parent('li').children('.responsive-menu-pro-submenu').hide(); 254 } 255 break; 256 case 40: 257 var dropdown = link.parent('li').find('.responsive-menu-pro-submenu'); 258 if ( dropdown.length > 0 ) { 259 event.preventDefault(); 260 event.stopPropagation(); 261 dropdown.find('a, input, button, textarea').filter(':visible').first().focus(); 262 } else { 263 if( link.parent('li').nextAll('li').filter(':visible').first().length == 0) { 264 link.parent('li').prevAll('li').filter(':visible').last().find('a').first().focus(); 265 } else { 266 link.parent('li').nextAll('li').filter(':visible').first().find('a').first().focus(); 267 } 268 } 269 break; 270 } 271 }); 272 273 } 274 }; 275 ResponsiveMenuPro.init(); 276});
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.