1/* ================================ 2 3infoNet burgerMenu.js ver4.1 4 5================================ */ 6; 7(function ($) { 8 'use strict'; 9 var _mode = { 10 len: 0, 11 init: function (options) { 12 $(this).burgerMenu('start', options); 13 _mode.len += 1; 14 return this; 15 }, 16 start: function (options) { 17 _mode.origin = this; 18 _mode.openClass = 'is-open'; 19 var set = { 20 $this: $(_mode.origin), 21 $thisClass: $(_mode.origin).attr('class'), 22 horizon: false 23 }; 24 var opt = $.extend({ 25 posi: '#header', 26 html: '<p><span></span></p>', 27 spd: 300, 28 moveType: 'default', 29 linkClass: 'main', 30 toggle_opts: { 31 toggleBtn: true, 32 toggleSwitch: false, 33 toggleReset: false, 34 spd: 300 35 }, 36 close_opts: { 37 close: false, 38 posi: '.headBottom', 39 html: '<p><span>close</span></p>' 40 }, 41 overlay_opts: { 42 overlay: true, 43 posi: '#skin' 44 } 45 }, options); 46 47 // Add a unique number. 48 set.$this.attr('burger-len', _mode.len); 49 // Add options to the array. 50 if (!_mode.opt) { 51 _mode.opt = []; 52 } 53 _mode.opt.push(opt); 54 // é åã«åºæè¨å®è¿½å 55 if (!_mode.set) { 56 _mode.set = []; 57 } 58 _mode.set.push(set); 59 60 $(_mode.set[_mode.len].$this).addClass('burger_item ' + _mode.opt[_mode.len].linkClass).attr('burger-active', true); 61 if (_mode.opt[_mode.len].moveType === 'horizon') { 62 _mode.set[_mode.len].horizon = true; 63 $('body').addClass('burger_horizon'); 64 } else if (_mode.opt[_mode.len].moveType === 'fade' || _mode.opt[_mode.len].moveType === 'default') { 65 _mode.set[_mode.len].horizon = false; 66 $(_mode.set[_mode.len].$this).hide(); 67 } else { 68 _mode.set[_mode.len].horizon = false; 69 $(_mode.set[_mode.len].$this).hide(); 70 } 71 // Add button. 72 $('<div class="burger_motion" tabindex="0" role="button"></div>').addClass(_mode.opt[_mode.len].linkClass).attr('burger-len', _mode.len).appendTo(_mode.opt[_mode.len].posi).append(_mode.opt[_mode.len].html); 73 // Add toggleSwitch. 74 if (_mode.opt[_mode.len].toggle_opts.toggleBtn && !$('.burger_item a.toggleSwitch').children('span')[0]) { 75 $('.burger_item a.toggleSwitch').append('<span class="toggleBtn"></span>'); 76 } 77 // Add close btn. 78 if (_mode.opt[_mode.len].close_opts.close && !$(_mode.opt[_mode.len].close_opts.posi).children('.burger_close_motion')[0]) { 79 $(_mode.opt[_mode.len].close_opts.posi).append(`<div class="burger_close_motion ${_mode.opt[_mode.len].linkClass}"></div>`); 80 $(`.burger_close_motion.${_mode.opt[_mode.len].linkClass}`).append(_mode.opt[_mode.len].close_opts.html); 81 } 82 burger_event(_mode.len); 83 }, 84 rebind: function () { 85 var hasEvent = ('click.burger' in this); 86 if (!hasEvent) { 87 var num = $(this).attr('burger-len'); 88 $(`.burger_item[burger-len="${num}"]`).attr('burger-active', true); 89 burger_event(num); 90 } 91 return this; 92 }, 93 reset: function () { 94 var num = $(this).attr('burger-len'); 95 $(`.burger_item[burger-len="${num}"]`).attr('burger-active', false); 96 burger_reset(num); 97 return this; 98 }, 99 close: function (target) { 100 if ($(`.burger_motion.${target}`)[0] && $(`.burger_item[burger-active="true"].${target}`)[0] && $(`.burger_motion.${target}`).hasClass(_mode.openClass)) { 101 var num = $(this).attr('burger-len'); 102 burger_remove(num); 103 } 104 return this; 105 }, 106 log: function () { 107 console.log(_mode.opt); 108 return this; 109 } 110 }; 111 112 function burger_event(num) { 113 $(`.burger_motion.${_mode.opt[num].linkClass}`).on({ 114 'click.burger keypress.burger': function (event) { 115 if (event_boolean(event)) { 116 event.preventDefault(); 117 var num = $(this).attr('burger-len'); 118 if (!$(this).hasClass(_mode.openClass)) { 119 burger_move(num); 120 } else { 121 burger_remove(num); 122 } 123 } 124 } 125 }); 126 127 if (_mode.opt[num].close_opts.close) { 128 $(`.burger_close_motion.${_mode.opt[num].linkClass}`).on({ 129 'click.burger keypress.burger': function (event) { 130 if (event_boolean(event)) { 131 event.preventDefault(); 132 burger_remove(num); 133 } 134 } 135 }); 136 } 137 if (_mode.opt[num].toggle_opts.toggleSwitch) { 138 $(`.${_mode.opt[num].linkClass} a.toggleSwitch`).on({ 139 'click.burger keypress.burger': function (event) { 140 if (event_boolean(event) && $(this).next('ul')[0]) { 141 event.preventDefault(); 142 if (!$(this).hasClass('open')) { 143 $(this).addClass('open').next('ul').stop().slideDown(_mode.opt[num].toggle_opts.spd, function () { css_reset(this); }); 144 } else { 145 $(this).removeClass('open').next('ul').stop().slideUp(_mode.opt[num].toggle_opts.spd, function () { css_reset(this); }); 146 } 147 } 148 } 149 }); 150 } 151 } 152 153 function burger_move(num) { 154 if (_mode.set[num].horizon && $('body').attr('data-burger')) { 155 let active_num = $(`.burger_motion.${$('body').attr('data-burger')}`).attr('burger-len'); 156 let anim_type = _mode.opt[active_num].moveType; 157 if (anim_type === 'horizon') { 158 } else if (anim_type === 'fade') { 159 $('.burger_item[burger-active="true"]').stop().fadeOut(_mode.opt[num].spd, function () { css_reset(this); }); 160 } else { 161 $('.burger_item[burger-active="true"]').stop().slideUp(_mode.opt[num].spd, function () { css_reset(this); }); 162 } 163 } else if (_mode.opt[num].moveType === 'fade') { 164 $('.burger_item[burger-active="true"]').stop().fadeOut(_mode.opt[num].spd, function () { css_reset(this); }); 165 _mode.set[num].$this.stop().fadeIn(_mode.opt[num].spd, function () { css_reset(this); }); 166 } else { 167 // dafault 168 $('.burger_item[burger-active="true"]').stop().slideUp(_mode.opt[num].spd, function () { css_reset(this); }); 169 _mode.set[num].$this.stop().slideDown(_mode.opt[num].spd, function () { css_reset(this); }); 170 } 171 172 $('body').addClass('burger-open').attr('data-burger', _mode.opt[num].linkClass); 173 $('.burger_motion').removeClass(_mode.openClass); 174 $(`.burger_motion.${_mode.opt[num].linkClass}`).addClass(_mode.openClass); 175 176 if (_mode.opt[num].overlay_opts.overlay) { 177 burger_overlay_add(num); 178 } 179 } 180 181 function burger_remove(num) { 182 if (_mode.set[num].horizon && $('body').attr('data-burger')) { 183 let active_num = $(`.burger_motion.${$('body').attr('data-burger')}`).attr('burger-len'); 184 let anim_type = _mode.opt[active_num].moveType; 185 if (anim_type === 'horizon') { 186 } else if (anim_type === 'fade') { 187 $('.burger_item[burger-active="true"]').stop().fadeOut(_mode.opt[num].spd, function () { css_reset(this); }); 188 } else { 189 $('.burger_item[burger-active="true"]').stop().slideUp(_mode.opt[num].spd, function () { css_reset(this); }); 190 } 191 } else if (_mode.opt[num].moveType === 'fade') { 192 $('.burger_item[burger-active="true"]').stop().fadeOut(_mode.opt[num].spd, function () { css_reset(this); }); 193 } else { 194 $('.burger_item[burger-active="true"]').stop().slideUp(_mode.opt[num].spd, function () { css_reset(this); }); 195 } 196 if (_mode.opt[num].toggle_opts.toggleReset && $(`.burger_item[burger-len="${num}"] .toggleSwitch`)[0]) { 197 $(`.burger_item[burger-len="${num}"] .toggleSwitch`).removeClass('open').next('ul').stop().hide(); 198 } 199 200 $('body').removeClass('burger-open').removeAttr('data-burger', ''); 201 $('.burger_motion').removeClass(_mode.openClass); 202 203 if ($('.burger_overlay')[0]) { 204 $('.burger_overlay').stop().remove(); 205 } 206 } 207 208 function burger_reset(num) { 209 $('body').removeClass('burger-open').removeAttr('data-burger', ''); 210 $('.burger_overlay').stop().remove(); 211 $(`.burger_motion[burger-len="${num}"]`).off('.burger').removeClass(_mode.openClass); 212 $('.burger_item').removeAttr('style'); 213 if (_mode.opt[num].toggle_opts.toggleSwitch) { 214 $('.burger_item a.toggleSwitch').off('.burger').removeClass('open').next('ul').removeAttr('style'); 215 } 216 } 217 218 function burger_overlay_add(num) { 219 if (!$('.burger_overlay')[0]) { 220 $(_mode.opt[num].overlay_opts.posi).append('<div class="burger_overlay"></div>'); 221 $('.burger_overlay').on({ 222 'click keypress': function (event) { 223 if (event_boolean(event)) { 224 burger_remove(num); 225 } 226 } 227 }); 228 } 229 } 230 231 function event_boolean(e) { 232 let flag = false;
233 if (e.type == 'click') { flag = true; } 234 if (e.type == 'keypress') { 235 const keycode = (e.keyCode ? e.keyCode : e.which); 236 if (keycode == '13') { 237 flag = true; 238 } 239 } 240 return flag; 241 } 242 243 function css_reset(target) { 244 $(target).css({ 'height': '', 'padding-top': '', 'margin-top': '', 'padding-bottom': '', 'margin-bottom': '' }); 245 } 246 247 $.fn.burgerMenu = function (method) { 248 var _ = this; 249 if (_mode[method]) { 250 return _mode[method].apply(this, Array.prototype.slice.call(arguments, 1)); 251 } else if (typeof method === 'object' || !method) { 252 return _mode.init.apply(this, arguments); 253 } else { 254 $.error('Method ' + method + ' does not exist on jQuery.burgerMenu'); 255 } 256 }; 257 258})(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.