-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
93 lines (81 loc) · 2.8 KB
/
main.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
(function() {
var style = [
'background: linear-gradient(to right, #5433ff, #20bdff, #a5fecb);',
'color: #FFF',
'padding: 15px 20px',
'font-family: Roboto',
'font-size: 5rem',
'font-weight: 700'
].join(';');
setTimeout(console.log.bind(console,"%c Hello World!", style), 0);
}());
function afterDocumentReady(fn) {
// $(document).ready();
document.addEventListener("DOMContentLoaded", function () {
document.removeEventListener("DOMContentLoaded", arguments.callee, false);
fn();
}, false);
}
function addActiveAtCategoryList() {
toggleClass(document.getElementById('category-list'), 'active');
}
function addClass( elem, className ) {
elem.className += ' ' + className;
return elem;
}
function removeClass( elem, className ) {
var classList = getClassList(elem),
classIndex = classList.indexOf( className );
if ( classIndex > -1 ) {
classList.splice( classIndex );
elem.className = classList.join(' ');
}
return elem;
}
function getClassList(elem) {
var classStr = elem.className;
if ( classStr ) {
return classStr.split(' ');
} else {
return [];
}
}
function toggleClass(elem, className) {
var classList = getClassList(elem)
, classIndex = classList.indexOf(className);
if ( classIndex > -1 ) {
removeClass( elem, className );
} else {
addClass( elem, className );
}
}
function addMenuClickEvent(elemList) {
for ( var i = 0; i < elemList.length; i++) {
elemList[i].addEventListener('click', function(e) {
e.preventDefault();
var activeElements = document.querySelectorAll('.active')
, length = activeElements.length
, className = this.className // When this element is not have 'active' class, then it has only one class.
, elemToShow = document.querySelector( this.getAttribute('href') );
for ( var j = 0; j < length; j++ ) {
var isSameClass = activeElements[j].getAttribute('class').indexOf(className) > -1;
if ( activeElements[j].tagName === 'DIV' || isSameClass ) {
removeClass( activeElements[j], 'active' );
}
}
addClass( this, 'active');
addClass( elemToShow, 'active' );
changeMaxWidth( this.getAttribute('href') );
});
}
}
function changeMaxWidth( href ) {
var isPortfolio = href === '#portfolio'
, wrapper = document.querySelector('#wrapper')
, isExtened = getClassList(wrapper).indexOf('extended') > -1;
if ( isPortfolio && !isExtened ) {
addClass(wrapper, 'extended');
} else if ( !isPortfolio ) {
removeClass(wrapper, 'extended')
}
}