diff options
Diffstat (limited to 'layouts/_partials/components')
| -rw-r--r-- | layouts/_partials/components/back-to-top.html | 97 |
1 files changed, 46 insertions, 51 deletions
diff --git a/layouts/_partials/components/back-to-top.html b/layouts/_partials/components/back-to-top.html index bf094d5d..6ef367b6 100644 --- a/layouts/_partials/components/back-to-top.html +++ b/layouts/_partials/components/back-to-top.html @@ -14,64 +14,59 @@ </div> <script> -// hide Batrick if set -if (localStorage.getItem('geedeapro.ui.hideBatrick')) { - document.getElementById('back2top').classList.add('hidden'); -} else { - // Batrick functionality - const backToTop = document.getElementById("back2top") - const backToTopButton = document.getElementById("back2top-button") - const backToTopInstruction = document.getElementById("back2top-instruction") - const seenAndUsedBat = localStorage.getItem("geedeapro.ui.seenAndUsedBat") +// Batrick functionality +const backToTop = document.getElementById("back2top") +const backToTopButton = document.getElementById("back2top-button") +const backToTopInstruction = document.getElementById("back2top-instruction") +const seenAndUsedBat = localStorage.getItem("geedeapro.ui.seenAndUsedBat") - function hideInstruction() { - backToTopInstruction.remove() - } - if (seenAndUsedBat) hideInstruction() +function hideInstruction() { + backToTopInstruction.remove() +} +if (seenAndUsedBat) hideInstruction() - // listen to button click and scroll to top - backToTopButton.addEventListener("click", () => { - window.scrollTo({ top: 0, behavior: "smooth" }) - if (!seenAndUsedBat) { - localStorage.setItem("geedeapro.ui.seenAndUsedBat", true); - hideInstruction(); - } - }) +// listen to button click and scroll to top +backToTopButton.addEventListener("click", () => { + window.scrollTo({ top: 0, behavior: "smooth" }) + if (!seenAndUsedBat) { + localStorage.setItem("geedeapro.ui.seenAndUsedBat", true); + hideInstruction(); + } +}) - // listen to scroll and toggle button visibility - let lastOffset = window.scrollY +// listen to scroll and toggle button visibility +let lastOffset = window.scrollY - window.addEventListener("scroll", () => { - const offset = window.scrollY - const batIsHidden = backToTop.classList.contains("-top-25") - const enoughHeight = offset >= 2000 - const isScrollingUp = offset < lastOffset - const isScrollingDown = offset > lastOffset +window.addEventListener("scroll", () => { + const offset = window.scrollY + const batIsHidden = backToTop.classList.contains("-top-25") + const enoughHeight = offset >= 2000 + const isScrollingUp = offset < lastOffset + const isScrollingDown = offset > lastOffset - function hide() { - backToTop.classList.remove("top-0") - backToTop.classList.add("-top-25") - backToTop.classList.remove("animate-head-shake") - } + function hide() { + backToTop.classList.remove("top-0") + backToTop.classList.add("-top-25") + backToTop.classList.remove("animate-head-shake") + } - function show() { - backToTop.classList.remove("-top-25") - backToTop.classList.add("top-0") - backToTop.classList.add("animate-head-shake") - } + function show() { + backToTop.classList.remove("-top-25") + backToTop.classList.add("top-0") + backToTop.classList.add("animate-head-shake") + } - if (enoughHeight && isScrollingUp && batIsHidden) { - // show only when scrolling up - show() - } else if (isScrollingDown && !batIsHidden) { - // hide as soon as user scrolls down again - hide() - } + if (enoughHeight && isScrollingUp && batIsHidden) { + // show only when scrolling up + show() + } else if (isScrollingDown && !batIsHidden) { + // hide as soon as user scrolls down again + hide() + } - // hide no matter what if too close to top - if (!enoughHeight) hide() + // hide no matter what if too close to top + if (!enoughHeight) hide() - lastOffset = offset - }) -} + lastOffset = offset +}) </script> |
