-
Notifications
You must be signed in to change notification settings - Fork 0
/
kss-isolate.js
50 lines (42 loc) · 1.54 KB
/
kss-isolate.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
jQuery(function($) {
var kssIsolate = {
isolate: function(selected) {
if(selected[0] != "#") {
selected = "#" + selected;
}
$(".kss-section").each(function(){
$(this).not(selected).toggleClass("kss-isolate--hide");
});
$(".kss-isolate__button").toggleClass("kss-isolate--active");
$('body').toggleClass("kss-isolate");
},
hideComponents: function() {
$(".kss-isolate__button").click(function(el) {
var selectedId = $(el.currentTarget).parents(".kss-section")[0].id;
kssIsolate.isolate(selectedId);
if($(this).hasClass("kss-isolate--active")) {
$(this).text("List");
document.location.hash = selectedId;
}
else {
$(this).text("Isolate");
document.location.hash = '';
}
})
},
keepIsolation: function() {
var urlHash = document.location.hash;
if(urlHash != '') {
$(urlHash).find(".kss-isolate__button").text("List");
kssIsolate.isolate(urlHash);
}
}
};
$(document).ready(function() {
$(".kss-section").each(function(){
$(this).find(".kss-modifier__heading").append("<button class='kss-isolate__button'>Isolate</button>");
});
kssIsolate.hideComponents();
kssIsolate.keepIsolation();
});
});