Skip to content

Commit 09ad568

Browse files
Archive GSoC 2022 files
1 parent 76ff92f commit 09ad568

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

2022/js/ui.js

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
(function (window, document) {
2+
3+
var layout = document.getElementById('layout'),
4+
menu = document.getElementById('menu'),
5+
menuLink = document.getElementById('menuLink'),
6+
content = document.getElementsByClassName('main');
7+
8+
function toggleClass(element, className) {
9+
var classes = element.className.split(/\s+/),
10+
length = classes.length,
11+
i = 0;
12+
13+
for(; i < length; i++) {
14+
if (classes[i] === className) {
15+
classes.splice(i, 1);
16+
break;
17+
}
18+
}
19+
// The className is not found
20+
if (length === classes.length) {
21+
classes.push(className);
22+
}
23+
24+
element.className = classes.join(' ');
25+
}
26+
27+
function toggleAll(e) {
28+
var active = 'active';
29+
30+
e.preventDefault();
31+
toggleClass(layout, active);
32+
toggleClass(menu, active);
33+
toggleClass(menuLink, active);
34+
}
35+
36+
menuLink.onclick = function (e) {
37+
toggleAll(e);
38+
};
39+
40+
content.onclick = function(e) {
41+
if (menu.className.indexOf('active') !== -1) {
42+
toggleAll(e);
43+
}
44+
};
45+
46+
})(this, this.document);
47+
48+
function shuffle() {
49+
var container = document.getElementById("container");
50+
var elementsArray = Array.prototype.slice.call(container.getElementsByClassName('shuffleMe'));
51+
elementsArray.forEach(function(element){
52+
container.removeChild(element);
53+
})
54+
shuffleArray(elementsArray);
55+
elementsArray.forEach(function(element){
56+
container.appendChild(element);
57+
})
58+
}
59+
60+
function shuffleArray(array) {
61+
for (var i = array.length - 1; i > 0; i--) {
62+
var j = Math.floor(Math.random() * (i + 1));
63+
var temp = array[i];
64+
array[i] = array[j];
65+
array[j] = temp;
66+
}
67+
return array;
68+
}

0 commit comments

Comments
 (0)