Sanftes Scrollen für Anker-Links in Svelte mit TypeScript
In dieser Schritt-für-Schritt-Anleitung werden wir die smoothScrollTo-Funktion von Grund auf in Svelte und TypeScript erstellen, um eine sanfte Scroll-Animation in Ihrer Webanwendung zu ermöglichen.
Inhaltsverzeichnis
Schritt 1: Projektvorbereitung
Stelle sicher, dass Du ein Svelte-Projekt hast und TypeScript als Sprache verwendest. Falls Du noch kein Svelte-Projekt erstellt habst, kannst Du dies mit dem folgenden Befehl tun:
Installieren Sie außerdem die Typen für TypeScript:
Schritt 2: Erstellen der smoothScrollTo-Funktion
Erstelle eine neue Datei namens smoothScrollTo.ts im Root-Verzeichnis Deines Projekts. Diese Datei wird unsere smoothScrollTo-Funktion enthalten.
Schritt 3: DOM-Abfrage und Berechnung der Zielposition
Fülle die smoothScrollTo-Funktion mit der ersten Hälfte der Logik. Hier müssen wir die DOM-Abfrage für das scrollTargetID-Element und das menuElementID-Element durchführen. Danach berechnen wir die Zielposition für das Scrollen unter Berücksichtigung der Höhe des Menüs und des topOffset-Werts.
Schritt 4: Viewport-Höhe und maximale Scroll-Höhe berechnen
Die maximale Scroll-Länge maxScrollHeight ist die Distanz, die der Viewport durchscrollen muss, um ein Zielelement für den Benutzer sichtbar zu machen.
Ein Problem entsteht, wenn sich das Zielelement am Ende der Website befindet. In diesem Fall kann der Viewport nicht bis zur oberen Kante des Zielelements scrollen, da das Dokument bereits endet. Wird dies nicht berücksichtigt, führt es zu einer Animation, die abrupt stoppt, wenn die unterste Kante des Dokuments vom Viewport erreicht wird.
Um dies zu berücksichtigen, wird die maximale Scroll-Länge maxScrollHeight als die gesamte Scroll-Länge document.documentElement.scrollHeight minus der Höhe des Viewports window.innerHeight berechnet. Der Code dafür sieht wie folgt aus:
Schritt 5: Scroll-Distanz berechnen und Animation vorbereiten
Jetzt berechnen wir die Scroll-Distanz und bereiten die Animation vor, indem wir die Dauer und die kubische Ease-in-Out-Funktion festlegen.
Schritt 6: Kubische Ease-in-Out-Funktion implementieren und Animation durchführen
Implementiere die kubische Ease-in-Out-Funktion und führe die Animation aus, indem Du window.scroll in Kombination mit requestAnimationFrame verwendest.
Schritt 7: Testen
Du hast die smoothScrollTo-Funktion erfolgreich erstellt! Du kannst jetzt die Funktion in Deiner Svelte-Anwendung verwenden, um sanfte Scroll-Effekte zu implementieren. Teste die Funktion, indem Du sie aufrufst und sieh, wie die Seite reibungslos zum angegebenen Element scrollt.
Herzlichen Glückwunsch! Du hast jetzt eine voll funktionsfähige smoothScrollTo-Funktion in Svelte und TypeScript erstellt, um Deine Webanwendung mit einer eleganten Scroll-Animation auszustatten.
Schritt 8: Importieren der Funktion in Deine Anwendung
Öffne die Hauptseite oder das Layout Deiner Svelte-Anwendung (normalerweise App.svelte) und importiere die smoothScrollTo-Funktion.
Schritt 9: Verwendung der onMount-Funktion
Verwende die onMount-Funktion von Svelte, um die smoothScrollTo-Funktion aufzurufen, sobald die Komponente geladen ist. Dies ermöglicht das automatische Scrollen, wenn die Seite geladen wird.
Schritt 10: Ausprobieren
Speichere die Datei und starte die Svelte-Entwicklungs-Server mit dem folgenden Befehl:
Öffne Dein Webbrowser und navigiere zu Ihrer Svelte-Anwendung. Du solltest das sanfte Scrollen zur angegebenen scrollTargetID-Element sehen, während die Höhe des menuElementID-Elements und der topOffset-Wert berücksichtigt werden.
Herzlichen Glückwunsch! Du hast erfolgreich die smoothScrollTo-Funktion in Deinem Svelte-Projekt implementiert und kannst nun sanfte Scroll-Effekte in Deiner Webanwendung genießen.
Und falls Du weitere Fragen hast, buche gerne eine Website Beratung bei mir. Ich entwickle die Websites mit Svelte und integriere sie in WordPress zur Content-Verwaltung.
Hast Du Lust auf mehr Tipps und Tricks rund um Websites und
SEO?
Dann abboniere meinen Newsletter und profitiere von:
Monatlichen Digest – Die wichtigsten News und Trends aus der
Welt von SEO & Compliance für B2B.
Exklusivem Zugang– Erhalte meine neuesten E-Books und Tools als
Erster.
100 % Mehrwert, 0 % Spam – Keine Werbung, nur nützliche Tipps
und praktische Ratschläge.
Gib einfach Deine E-Mail-Adresse ein und mach Deine Website zum
Magneten für Suchende zu machen!
SEO & CRO Newsletter
Updates zur Website-Compliance und News rund um SEO und
Conversion-Optimierung Deiner Website.
Danke!
Du hast das Formular erfolgreich abgesendet.
P.S.: Bist Du noch am Überlegen? Dann hier ist ein kleiner Anreiz für Dich:
Wenn Du mein Newsletter abbonierst, bekommst Du:
BONUS: Checkliste mit 55 Tipps für perfekte SEO-Beiträge für B2B
2024
- Ein E-Book mit den besten SEO-Praktiken, die 2024 relevant sind.
Dieses E-Book hat alles drin, was ich alltäglich für meine Kunden mache, um
deren Online-Präsenz aufs nächste Level zu bringen.
Ich hoffe das reicht.
Ich freue mich auf Dich und bin gespannt, was Du mit meinen
Tipps erreichst!