From 78ebe5012d4158adbfa3f96055d1e2937c1095c4 Mon Sep 17 00:00:00 2001 From: Jonas Leder <git@jonasled.de> Date: Sun, 18 Apr 2021 22:29:51 +0200 Subject: [PATCH] show loading animation while page is loading --- js/externalLinkHandler.js | 4 ++- js/loader.js | 11 +++++++ js/script.js | 1 + scss/_loader.scss | 61 +++++++++++++++++++++++++++++++++++++++ scss/style.scss | 1 + 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 js/loader.js create mode 100644 scss/_loader.scss diff --git a/js/externalLinkHandler.js b/js/externalLinkHandler.js index 0feee1b..183b669 100644 --- a/js/externalLinkHandler.js +++ b/js/externalLinkHandler.js @@ -5,5 +5,7 @@ document.onreadystatechange = function () { console.log(href); element.target = "_blank"; } - }) + }); + + document.querySelector(".loader").style.display = "none"; } \ No newline at end of file diff --git a/js/loader.js b/js/loader.js new file mode 100644 index 0000000..337977b --- /dev/null +++ b/js/loader.js @@ -0,0 +1,11 @@ +let div = document.createElement("div"); +div.className = "loader"; +div.innerHTML = `<div class="loader-dots"> + <div class="dots"></div> + <div class="dots"></div> + <div class="dots"></div> + <div class="dots"></div> + <div class="dots"></div> +</div>`; + +document.body.appendChild(div); \ No newline at end of file diff --git a/js/script.js b/js/script.js index dccfa63..8b4271f 100644 --- a/js/script.js +++ b/js/script.js @@ -1,3 +1,4 @@ +require("./loader"); require("./browserCheck"); require("./error"); diff --git a/scss/_loader.scss b/scss/_loader.scss new file mode 100644 index 0000000..b76e566 --- /dev/null +++ b/scss/_loader.scss @@ -0,0 +1,61 @@ +.loader { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + transition: visibility 0s, opacity 0.5s linear; + background-color: $back-color; + + .loader-dots { + position: absolute; + top: 50%; + left: 50%; + + .dots { + position: absolute; + padding: 10px; + border-radius: 50%; + background: $accent-color; + -webkit-animation: loader 1s ease-in-out 0s infinite; + animation: loader 1s ease-in-out 0s infinite; + + &:nth-child(1) { + -webkit-animation-delay: 0s; + animation-delay: 0s; + } + + &:nth-child(2) { + -webkit-animation-delay: 0.15s; + animation-delay: 0.15s; + } + + &:nth-child(3) { + -webkit-animation-delay: 0.30s; + animation-delay: 0.30s; + } + + &:nth-child(4) { + -webkit-animation-delay: 0.45s; + animation-delay: 0.45s; + } + } + + } +} + +@keyframes loader { + 0% { + -webkit-transform: translateX(-100px); + transform: translateX(-100px); + opacity: 0; + } + 50% { + opacity: 1; + } + 100% { + -webkit-transform: translateX(100px); + transform: translateX(100px); + opacity: 0; + } +} \ No newline at end of file diff --git a/scss/style.scss b/scss/style.scss index 4f6d62c..8ba928f 100644 --- a/scss/style.scss +++ b/scss/style.scss @@ -1,5 +1,6 @@ @import "var"; @import "colorMixer"; +@import "loader"; @import "general"; @import "menue"; @import "normalize"; -- GitLab