PageSourceSearch

https://www.jisha.or.jp/Portals/0/js/burger/burger.js?date=20250424143214

js jisha.or.jp collected 2026-10-02 04:28:16 UTC 10,928 bytes, 258 lines download raw bytes

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.