forked from valdelama/responav
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathresponav.js
43 lines (37 loc) · 1.08 KB
/
responav.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
$.fn.responav = function(options) {
var settings = $.extend({
breakpoint : 720,
trigger : true
}, options);
var menu = $(this);
var hasTrigger = false;
$(window).on('resize.responav', function () {
var browserWidth = $(window).width();
if (browserWidth < settings.breakpoint) {
$('body').addClass('responav-active');
menu.addClass('responav-menu');
if (!hasTrigger && settings.trigger) {
$('.responav-inner').prepend('<button class="responav-trigger" id="responav-trigger"></button>');
hasTrigger = true;
}
} else {
$('body').removeClass('responav-active');
menu.removeClass('responav-menu');
if (hasTrigger) {
$('#responav-trigger').remove();
hasTrigger = false;
}
}
}).trigger('resize');
$(document).on('click.responav touchstart.responav', '#responav-trigger', function(event) {
$('body').toggleClass('responav-open');
$(document).one(event.type, function() {
$('body').removeClass('responav-open');
});
return false;
});
menu.on("click.responav touchstart.responav", function(e) {
e.stopPropagation();
});
return this;
};