forked from mmistakes/jekyll-theme-basically-basic
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
57 lines (50 loc) · 1.67 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
---
---
/*!
* Basically Basic Jekyll Theme 1.1.3
* Copyright 2017 Michael Rose - mademistakes | @mmistakes
* Free for personal and commercial use under the MIT license
* https://github.com/mmistakes/jekyll-basically-theme/blob/master/LICENSE.md
*/
// Animate sidebar menu items
var menuItems = document.querySelectorAll('#sidebar li');
// Get vendor transition property
var docElemStyle = document.documentElement.style;
var transitionProp = typeof docElemStyle.transition == 'string' ?
'transition' : 'WebkitTransition';
function animateMenuItems() {
for ( var i=0; i < menuItems.length; i++ ) {
var item = menuItems[i];
// Stagger transition with transitionDelay
item.style[ transitionProp + 'Delay' ] = ( i * 75 ) + 'ms';
item.classList.toggle('is--moved');
}
};
// Toggle sidebar visibility
function toggleClassMenu() {
myMenu.classList.add('is--animatable');
if(!myMenu.classList.contains('is--visible')) {
myMenu.classList.add('is--visible');
myToggle.classList.add('open');
myWrapper.classList.add('is--pushed');
} else {
myMenu.classList.remove('is--visible');
myToggle.classList.remove('open');
myWrapper.classList.remove('is--pushed');
}
}
function OnTransitionEnd() {
myMenu.classList.remove('is--animatable');
}
var myWrapper = document.querySelector('.wrapper');
var myMenu = document.querySelector('.sidebar');
var myToggle = document.querySelector('.toggle');
myMenu.addEventListener('transitionend', OnTransitionEnd, false);
myToggle.addEventListener('click', function() {
toggleClassMenu();
animateMenuItems();
}, false);
myMenu.addEventListener('click', function() {
toggleClassMenu();
animateMenuItems();
}, false);