-
Notifications
You must be signed in to change notification settings - Fork 0
/
drawer-panel.js
54 lines (42 loc) · 1.79 KB
/
drawer-panel.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
44
45
46
47
48
49
50
51
52
53
54
function DrawerPanel() {
"use strict";
var self = this;
this.enable = function () {
if (jQuery("[drawer-panel__screen-canvas]").length === 0) {
jQuery("[drawer-panel]").append("<div drawer-panel__screen-canvas></div>");
}
if (jQuery("[page-top-nav]").length > 0) {
jQuery("[drawer-panel__drawer], [drawer-panel__screen-canvas]").css("top", jQuery("[page-top-nav]").height());
}
jQuery(document).on("click", "[drawer-panel__screen-canvas]", function () {
self.closeAll();
});
};
this.open = function (drawerIdentifier) {
var parent = jQuery("[drawer-panel__drawer]" + drawerIdentifier).closest("[drawer-panel]");
//only allow one drawer open
parent.find("[drawer-panel__drawer]").removeClass('drawer-panel__drawer--open');
//open drawer
jQuery("[drawer-panel__drawer]" + drawerIdentifier).addClass('drawer-panel__drawer--open');
parent.find("[drawer-panel__screen-canvas]").addClass('drawer-panel__screen-canvas--open');
//prevent page scrolling
jQuery("[drawer-panel]").parents().addClass("no-scroll");
};
this.close = function (drawerIdentifier) {
//close drawer
jQuery("[drawer-panel__drawer]" + drawerIdentifier).removeClass('drawer-panel__drawer--open');
jQuery("[drawer-panel__drawer]" + drawerIdentifier).closest("[drawer-panel]").find("[drawer-panel__screen-canvas]").removeClass('drawer-panel__screen-canvas--open');
//allow page scrolling
jQuery("[drawer-panel]").parents().removeClass("no-scroll");
};
this.closeAll = function () {
self.close("");
};
this.toggle = function (drawerIdentifier) {
if (jQuery("[drawer-panel__drawer]" + drawerIdentifier).hasClass('drawer-panel__drawer--open')) {
self.close(drawerIdentifier);
} else {
self.open(drawerIdentifier);
}
};
}