diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-10-26 14:44:11 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-10-26 14:44:11 +0200 |
| commit | 06a912858b059697292b6579498eb04746aff51f (patch) | |
| tree | 7416b030d86ba0b885cf224f04797982bfc42d85 /htdocs/src/js | |
| parent | bfb1566c7c353d71561fb2a27bee18513dab18d3 (diff) | |
refactor: move animation functions to a separated file
App.js becomes heavy. So by moving some functions outside this file, it
improves the readability.
Diffstat (limited to 'htdocs/src/js')
| -rw-r--r-- | htdocs/src/js/app.js | 50 | ||||
| -rw-r--r-- | htdocs/src/js/utilities/animations.js | 45 |
2 files changed, 51 insertions, 44 deletions
diff --git a/htdocs/src/js/app.js b/htdocs/src/js/app.js index 603b5cc..434f730 100644 --- a/htdocs/src/js/app.js +++ b/htdocs/src/js/app.js @@ -1,29 +1,13 @@ import projects from './config/projects'; +import { + hideToBottom, + hideToLeft, + showFromBottom, + showFromLeft, +} from './utilities/animations'; import { isSmallVw, isStyleJsExists } from './utilities/helpers'; /** - * Change the element classes to hide it with a slide out left animation. - * @param {HTMLElement} el - The HTMLElement to hide. - */ -function hideToLeft(el) { - el?.classList.remove('slide-in--left'); - el?.classList.add('slide-out--left'); - setTimeout(() => { - el?.classList.add('hide'); - }, 800); -} - -/** - * Change the element classes to show it with a slide in left animation. - * @param {HTMLElement} el - The HTMLElement to show. - */ -function showFromLeft(el) { - el?.classList.remove('slide-out--left'); - el?.classList.remove('hide'); - el?.classList.add('slide-in--left'); -} - -/** * Show/hide header and footer with slide animation (left). */ function toggleHeaderFooter() { @@ -41,28 +25,6 @@ function toggleHeaderFooter() { } /** - * Change the element classes to hide it with a slide out bottom animation. - * @param {HTMLElement} el - The HTMLElement to hide. - */ -function hideToBottom(el) { - el?.classList.remove('slide-in--up'); - el?.classList.add('slide-out--bottom'); - setTimeout(() => { - el?.classList.add('hide'); - }, 800); -} - -/** - * Change the element classes to show it with a slide in up animation. - * @param {HTMLElement} el - The HTMLElement to show. - */ -function showFromBottom(el) { - el?.classList.remove('slide-out--bottom'); - el?.classList.remove('hide'); - el?.classList.add('slide-in--up'); -} - -/** * Show/hide project details with slide animation (bottom). */ function toggleProjectDetails() { diff --git a/htdocs/src/js/utilities/animations.js b/htdocs/src/js/utilities/animations.js new file mode 100644 index 0000000..9a30685 --- /dev/null +++ b/htdocs/src/js/utilities/animations.js @@ -0,0 +1,45 @@ +/** + * Change the element classes to hide it with a slide out left animation. + * @param {HTMLElement} el - The HTMLElement to hide. + */ +function hideToLeft(el) { + el?.classList.remove('slide-in--left'); + el?.classList.add('slide-out--left'); + setTimeout(() => { + el?.classList.add('hide'); + }, 800); +} + +/** + * Change the element classes to show it with a slide in left animation. + * @param {HTMLElement} el - The HTMLElement to show. + */ +function showFromLeft(el) { + el?.classList.remove('slide-out--left'); + el?.classList.remove('hide'); + el?.classList.add('slide-in--left'); +} + +/** + * Change the element classes to hide it with a slide out bottom animation. + * @param {HTMLElement} el - The HTMLElement to hide. + */ +function hideToBottom(el) { + el?.classList.remove('slide-in--up'); + el?.classList.add('slide-out--bottom'); + setTimeout(() => { + el?.classList.add('hide'); + }, 800); +} + +/** + * Change the element classes to show it with a slide in up animation. + * @param {HTMLElement} el - The HTMLElement to show. + */ +function showFromBottom(el) { + el?.classList.remove('slide-out--bottom'); + el?.classList.remove('hide'); + el?.classList.add('slide-in--up'); +} + +export { hideToLeft, showFromLeft, hideToBottom, showFromBottom }; |
