Skip to content

Commit e668327

Browse files
authored
feat: add animation for NavBar in mobile view (#230)
* feat(main.ts): add animation for NavBar in mobile view This commit adds a sliding and opacity animation to the NavBar when closed/expanded in mobile view #209 * feat: use animation for menu clicks
1 parent 27e72c7 commit e668327

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/main.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,22 @@ const sideBarTiming = {
4242
easing: 'ease',
4343
};
4444

45+
const navBarSlideIn = [
46+
{left: "-50%", opacity: '0', },
47+
{left: "0%", opacity: '1'}
48+
]
49+
50+
const navBarSlideOut = [
51+
{left: "0%", opacity: '1'},
52+
{left: "-50%", opacity: '0'}
53+
]
54+
55+
const navBarAnimationOptions = {
56+
duration: 300,
57+
iterations: 1,
58+
easing: 'ease'
59+
}
60+
4561
// Elements
4662
const generators = document.querySelectorAll('[data-gen]');
4763
const sidebar = <HTMLElement>document.querySelector('.side-results');
@@ -108,9 +124,11 @@ const gradientRangeInputs = document.querySelectorAll('.degree-range');
108124

109125
menuIcon?.addEventListener('click', () => {
110126
if (navBar?.classList.contains('closed-nav')) {
127+
navBar?.animate(navBarSlideIn, navBarAnimationOptions)
111128
navBar?.classList.remove('closed-nav');
112129
menuIcon?.setAttribute('icon', 'ci:close-big');
113130
} else {
131+
navBar?.animate(navBarSlideOut, navBarAnimationOptions)
114132
navBar?.classList.add('closed-nav');
115133
menuIcon?.setAttribute('icon', 'dashicons:menu-alt');
116134
}
@@ -132,6 +150,7 @@ if(getComputedStyle(menu).display == 'block'){
132150

133151
for (let i = 0; i < generators.length; i++) {
134152
generators[i].addEventListener('click', () => {
153+
navBar?.animate(navBarSlideOut, navBarAnimationOptions)
135154
navBar?.classList.add('closed-nav');
136155
menuIcon?.setAttribute('icon', 'dashicons:menu-alt');
137156
});

0 commit comments

Comments
 (0)