ScrollToElement() working
This commit is contained in:
parent
9195886bea
commit
53561d5ebb
6 changed files with 65 additions and 29 deletions
14
build/app.js
14
build/app.js
File diff suppressed because one or more lines are too long
|
|
@ -145,6 +145,8 @@
|
||||||
<link rel="icon" href="favicon.png"><link href="main.css" rel="stylesheet"></head>
|
<link rel="icon" href="favicon.png"><link href="main.css" rel="stylesheet"></head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
<button class="scroll-up-button hidden">^</button>
|
||||||
|
|
||||||
<div id="background"></div>
|
<div id="background"></div>
|
||||||
|
|
||||||
<div id="content">
|
<div id="content">
|
||||||
|
|
|
||||||
|
|
@ -512,10 +512,34 @@ a.button:visited {
|
||||||
height: 1.47rem;
|
height: 1.47rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scroll-up-button {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
text-decoration: none;
|
||||||
|
position: fixed;
|
||||||
|
right: 1px;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 1100;
|
||||||
|
opacity: 0;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.visible-block {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.opacity-none {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.opacity-full {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
.spoiler-text {
|
.spoiler-text {
|
||||||
display: inline;
|
display: inline;
|
||||||
/* These are technically the same, but use both */
|
/* These are technically the same, but use both */
|
||||||
|
|
|
||||||
|
|
@ -405,6 +405,18 @@ a.button:visited {
|
||||||
height: 1.47rem;
|
height: 1.47rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scroll-up-button {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
text-decoration: none;
|
||||||
|
position: fixed;
|
||||||
|
right: 1px;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 1100;
|
||||||
|
opacity: 0;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
@ -629,17 +641,6 @@ input[type="radio"] {
|
||||||
border: 2px solid #2d8a49;
|
border: 2px solid #2d8a49;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-up-button {
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
text-decoration: none;
|
|
||||||
position: fixed;
|
|
||||||
right: 1px;
|
|
||||||
bottom: 0;
|
|
||||||
z-index: 1100;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.test {
|
.test {
|
||||||
color: #59d1da;
|
color: #59d1da;
|
||||||
}
|
}
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<button class="scroll-up-button hidden opacity-none">^</button>
|
<button class="scroll-up-button hidden">^</button>
|
||||||
|
|
||||||
<div id="background"></div>
|
<div id="background"></div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
function ScrollTo(element) {
|
const ROOT = document.documentElement;
|
||||||
|
const SCROLL_BUTTON = document.querySelector(".scroll-up-button");
|
||||||
|
|
||||||
|
function ScrollToElement(element) {
|
||||||
|
|
||||||
/* Scroll to the element top */
|
/* Scroll to the element top */
|
||||||
element.ScrollTo({
|
element.scrollTo({
|
||||||
top: 0,
|
top: 0,
|
||||||
behavior: "smooth"
|
behavior: "smooth"
|
||||||
});
|
});
|
||||||
|
|
@ -9,20 +12,16 @@ function ScrollTo(element) {
|
||||||
|
|
||||||
function ShowElement(element) {
|
function ShowElement(element) {
|
||||||
|
|
||||||
element.classList.toggle("hidden");
|
element.classList.add("visible-block");
|
||||||
element.classList.toggle("opacity-none");
|
|
||||||
|
|
||||||
element.classList.add("visible");
|
|
||||||
element.classList.add("opacity-full");
|
element.classList.add("opacity-full");
|
||||||
|
element.classList.remove("hidden");
|
||||||
}
|
}
|
||||||
|
|
||||||
function HideElement(element) {
|
function HideElement(element) {
|
||||||
|
|
||||||
element.classList.toggle("visible");
|
element.classList.remove("visible-block");
|
||||||
element.classList.toggle("opacity-full");
|
element.classList.remove("opacity-full");
|
||||||
|
|
||||||
element.classList.add("hidden");
|
element.classList.add("hidden");
|
||||||
element.classList.add("opacity-none");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function TogglePageScrollElement(root, element, ratio) {
|
function TogglePageScrollElement(root, element, ratio) {
|
||||||
|
|
@ -42,13 +41,13 @@ function TogglePageScrollElement(root, element, ratio) {
|
||||||
document.addEventListener("scroll", () => {
|
document.addEventListener("scroll", () => {
|
||||||
TogglePageScrollElement(
|
TogglePageScrollElement(
|
||||||
/* the document element root (<html>) */
|
/* the document element root (<html>) */
|
||||||
document.documentElement,
|
ROOT,
|
||||||
/* Which element to toggle visibility */
|
/* Which element to toggle visibility */
|
||||||
document.querySelector(".scroll-up-button"),
|
SCROLL_BUTTON,
|
||||||
/* How far the user has to scroll to show the element */
|
/* How far the user has to scroll to show the element */
|
||||||
0.50);
|
0.1);
|
||||||
});
|
});
|
||||||
|
|
||||||
document.querySelector(".scroll-up-button").addEventListener("click", () => {
|
SCROLL_BUTTON.addEventListener("click", () => {
|
||||||
ScrollTo(document.documentElement);
|
ScrollToElement(ROOT);
|
||||||
});
|
});
|
||||||
Loading…
Reference in a new issue