Scroll To Top
Als erstes erstellen wir ein HTML Grundgerüst, wie folgt:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="styles.css"> </head> <body> <!-- Ihr Hauptinhalt hier --> <div id="scroll-up">▲</div> <script src="script.js"></script> </body> </html>
dann erstellen wir eine einfache css Datei in der wir ein bisschen unseren button gestallten.
body { margin: 0; } main { max-width: 1024px; margin: auto; } main div { margin-bottom: 1rem; } #scroll-up { position: fixed; bottom: 20px; right: 20px; display: none; cursor: pointer; height: 48px; width: 48px; box-shadow: 0 1px 3px 0 rgba(60, 64, 67, 0.3), 0 4px 8px 3px rgba(60, 64, 67, 0.15); border-radius: 50%; } #scroll-up.show-scroll { display: flex; justify-content: center; align-items: center; }
Dieser CSS-Code definiert Stilregeln für verschiedene Teile einer Webseite. Hier ist eine Erklärung für jeden Abschnitt:
1. **`body` Regel:**
- `margin: 0;`: Setzt den Außenabstand des `body`-Elements auf null, um sicherzustellen, dass es keinen zusätzlichen Abstand am Rand der Seite gibt.
2. **`main` Regel:**
- `max-width: 1024px;`: Begrenzt die maximale Breite des `main`-Elements auf 1024 Pixel.
- `margin: auto;`: Zentriert das `main`-Element horizontal auf der Seite, indem der automatische Außenabstand verwendet wird.
3. **`main div` Regel:**
- `margin-bottom: 1rem;`: Fügt einen unteren Außenabstand von 1 Rem (eine Einheit basierend auf der Schriftgröße) zu allen `<div>`-Elementen innerhalb des `main`-Elements hinzu.
4. **`#scroll-up` Regel:**
- `position: fixed;`: Setzt die Position des Elements auf fixiert, sodass es beim Scrollen der Seite an einer festen Position bleibt.
- `bottom: 20px; right: 20px;`: Positioniert das Element 20 Pixel vom unteren und rechten Rand des Bildschirms entfernt.
- `display: none;`: Verbirgt das Element standardmäßig.
- `cursor: pointer;`: Ändert den Mauszeiger, wenn er über das Element bewegt wird, um anzuzeigen, dass es anklickbar ist.
- `height: 48px; width: 48px;`: Setzt die Höhe und Breite des Elements auf 48 Pixel.
- `box-shadow`: Fügt einen Schatten zum Element hinzu, um es vor dem Hintergrund hervorzuheben.
- `border-radius: 50%;`: Verleiht dem Element eine runde Form, da der Wert 50% einen Kreis darstellt.
5. **`#scroll-up.show-scroll` Regel:**
- `display: flex; justify-content: center; align-items: center;`: Zeigt das Element an und zentriert den Inhalt horizontal und vertikal, wenn die Klasse `show-scroll` dem Element hinzugefügt wird.
1. **`body` Regel:**
- `margin: 0;`: Setzt den Außenabstand des `body`-Elements auf null, um sicherzustellen, dass es keinen zusätzlichen Abstand am Rand der Seite gibt.
2. **`main` Regel:**
- `max-width: 1024px;`: Begrenzt die maximale Breite des `main`-Elements auf 1024 Pixel.
- `margin: auto;`: Zentriert das `main`-Element horizontal auf der Seite, indem der automatische Außenabstand verwendet wird.
3. **`main div` Regel:**
- `margin-bottom: 1rem;`: Fügt einen unteren Außenabstand von 1 Rem (eine Einheit basierend auf der Schriftgröße) zu allen `<div>`-Elementen innerhalb des `main`-Elements hinzu.
4. **`#scroll-up` Regel:**
- `position: fixed;`: Setzt die Position des Elements auf fixiert, sodass es beim Scrollen der Seite an einer festen Position bleibt.
- `bottom: 20px; right: 20px;`: Positioniert das Element 20 Pixel vom unteren und rechten Rand des Bildschirms entfernt.
- `display: none;`: Verbirgt das Element standardmäßig.
- `cursor: pointer;`: Ändert den Mauszeiger, wenn er über das Element bewegt wird, um anzuzeigen, dass es anklickbar ist.
- `height: 48px; width: 48px;`: Setzt die Höhe und Breite des Elements auf 48 Pixel.
- `box-shadow`: Fügt einen Schatten zum Element hinzu, um es vor dem Hintergrund hervorzuheben.
- `border-radius: 50%;`: Verleiht dem Element eine runde Form, da der Wert 50% einen Kreis darstellt.
5. **`#scroll-up.show-scroll` Regel:**
- `display: flex; justify-content: center; align-items: center;`: Zeigt das Element an und zentriert den Inhalt horizontal und vertikal, wenn die Klasse `show-scroll` dem Element hinzugefügt wird.
Jetzt noch ein kleines script:
var scrollUp = function () { const scrollUp = document.getElementById("scroll-up"); scrollUp.onclick = () => window.scrollTo({ top: 0, behavior: "smooth" }); if (window.scrollY >= 300) scrollUp.classList.add("show-scroll"); else scrollUp.classList.remove("show-scroll"); }; window.addEventListener("scroll", function () { scrollUp(); }); scrollUp();
Dieses JavaScript-Script implementiert eine Scroll-Up-Funktion auf einer Webseite. Hier ist eine Erklärung für jeden Teil des Scripts:
1. **`var scrollUp = function () { ... }`:**
- Es definiert eine Funktion namens `scrollUp`.
2. **`const scrollUp = document.getElementById("scroll-up");`:**
- Holt sich das DOM-Element mit der ID "scroll-up" und weist es der Variable `scrollUp` zu.
3. **`scrollUp.onclick = () => window.scrollTo({ top: 0, behavior: "smooth" });`:**
- Weist der `onclick`-Eigenschaft des `scrollUp`-Elements eine Funktion zu. Diese Funktion wird aufgerufen, wenn das Element angeklickt wird.
- Die Funktion setzt die Scrollposition des Fensters auf den oberen Rand der Seite (`top: 0`) und verwendet dabei eine sanfte Scrollanimation (`behavior: "smooth"`).
4. **`if (window.scrollY >= 300) scrollUp.classList.add("show-scroll");`:**
- Überprüft, ob die aktuelle Scrollposition (`window.scrollY`) größer oder gleich 300 Pixel ist.
- Wenn ja, wird der Klasse "show-scroll" die Klasse `show-scroll` hinzugefügt, um das Scroll-Up-Element anzuzeigen.
5. **`else scrollUp.classList.remove("show-scroll");`:**
- Wenn die Scrollposition kleiner als 300 Pixel ist, wird die Klasse `show-scroll` entfernt, um das Scroll-Up-Element zu verbergen.
6. **`window.addEventListener("scroll", function () { scrollUp(); });`:**
- Fügt einen Event-Listener hinzu, der auf das Scrollen der Seite reagiert.
- Bei jedem Scrollereignis wird die Funktion `scrollUp` aufgerufen, um zu überprüfen, ob das Scroll-Up-Element angezeigt oder ausgeblendet werden soll.
7. **`scrollUp();`:**
- Ruft die `scrollUp`-Funktion einmalig auf, um den initialen Status des Scroll-Up-Elements basierend auf der aktuellen Scrollposition festzulegen.
Zusammenfassend ermöglicht dieses Script die Anzeige eines Scroll-Up-Elements, wenn der Benutzer über 300 Pixel nach unten scrollt, und erlaubt es dem Benutzer, durch Klicken auf dieses Element sanft zur Oberseite der Seite zu scrollen.
1. **`var scrollUp = function () { ... }`:**
- Es definiert eine Funktion namens `scrollUp`.
2. **`const scrollUp = document.getElementById("scroll-up");`:**
- Holt sich das DOM-Element mit der ID "scroll-up" und weist es der Variable `scrollUp` zu.
3. **`scrollUp.onclick = () => window.scrollTo({ top: 0, behavior: "smooth" });`:**
- Weist der `onclick`-Eigenschaft des `scrollUp`-Elements eine Funktion zu. Diese Funktion wird aufgerufen, wenn das Element angeklickt wird.
- Die Funktion setzt die Scrollposition des Fensters auf den oberen Rand der Seite (`top: 0`) und verwendet dabei eine sanfte Scrollanimation (`behavior: "smooth"`).
4. **`if (window.scrollY >= 300) scrollUp.classList.add("show-scroll");`:**
- Überprüft, ob die aktuelle Scrollposition (`window.scrollY`) größer oder gleich 300 Pixel ist.
- Wenn ja, wird der Klasse "show-scroll" die Klasse `show-scroll` hinzugefügt, um das Scroll-Up-Element anzuzeigen.
5. **`else scrollUp.classList.remove("show-scroll");`:**
- Wenn die Scrollposition kleiner als 300 Pixel ist, wird die Klasse `show-scroll` entfernt, um das Scroll-Up-Element zu verbergen.
6. **`window.addEventListener("scroll", function () { scrollUp(); });`:**
- Fügt einen Event-Listener hinzu, der auf das Scrollen der Seite reagiert.
- Bei jedem Scrollereignis wird die Funktion `scrollUp` aufgerufen, um zu überprüfen, ob das Scroll-Up-Element angezeigt oder ausgeblendet werden soll.
7. **`scrollUp();`:**
- Ruft die `scrollUp`-Funktion einmalig auf, um den initialen Status des Scroll-Up-Elements basierend auf der aktuellen Scrollposition festzulegen.
Zusammenfassend ermöglicht dieses Script die Anzeige eines Scroll-Up-Elements, wenn der Benutzer über 300 Pixel nach unten scrollt, und erlaubt es dem Benutzer, durch Klicken auf dieses Element sanft zur Oberseite der Seite zu scrollen.