-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmenuFullScreen.js
43 lines (39 loc) · 1.38 KB
/
menuFullScreen.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// fullScreenMenu Plugin
(function ($) {
$.fn.fullScreenMenu = function (options) {
// Default options
var settings = $.extend({
menuTrigger: '.nav-trigger',
closeButton: '.js_close_button',
menuElement: '.menu-active',
containerElement: '.container',
animationDuration: 200
}, options);
// Plugin logic
return this.each(function () {
var $this = $(this);
$this.on('click', settings.menuTrigger, function () {
$(this).toggleClass('on');
$(settings.menuElement).fadeToggle(settings.animationDuration);
$(settings.menuElement).toggleClass('active');
$(settings.containerElement).toggleClass('menu-open');
});
$this.on('click', settings.closeButton, function () {
$(settings.menuTrigger).removeClass('on');
$(settings.menuElement).removeClass('active');
$(settings.containerElement).removeClass('menu-open');
});
});
};
})(jQuery);
// Usage
$(document).ready(function () {
// Initialize the plugin
$('body').fullScreenMenu({
menuTrigger: '.nav-trigger',
closeButton: '.js_close_button',
menuElement: '.nav-menu',
containerElement: '.container',
animationDuration: 200
});
});