aboutsummaryrefslogtreecommitdiffstats
path: root/htdocs
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-10-26 14:44:11 +0200
committerArmand Philippot <git@armandphilippot.com>2021-10-26 14:44:11 +0200
commit06a912858b059697292b6579498eb04746aff51f (patch)
tree7416b030d86ba0b885cf224f04797982bfc42d85 /htdocs
parentbfb1566c7c353d71561fb2a27bee18513dab18d3 (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')
-rw-r--r--htdocs/src/js/app.js50
-rw-r--r--htdocs/src/js/utilities/animations.js45
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 };