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.
Hinterlasse Deine E-Mail →
erhalte einen Termin + Bonus dazu 🎁
Es ist Zeit, durchzustarten und Deine Website auf das nächste Level zu heben.
Hier ist, was wir während der kostenlosen Website Beratung angehen:
30 Minuten Videoanruf – Lass uns gemeinsam Deine Ziele und
Visionen durchgehen.
Individuelle Bedarfsanalyse– Wir werden herausfinden, wie und
ob eine Website Dein Business voranbringt.
Marketing-Strategie – Wir entwickeln einen klaren Plan, wie Du
die Website als Marketing-Tool einsetzt.
Hinterlasse Deine E-Mail und mach den ersten Schritt, um Deine Website zum
Magnet für Suchende zu machen!
P.S.: Bist Du noch am Überlegen? Dann hier ist ein kleiner Anreiz für Dich:
Wenn du die Terminanfrage stellst, und wir uns tatsächlich treffen, bekommst
Du:
BONUS: Checkliste mit 55 Tipps für perfekte SEO-Blogbeiträge für B2B 2024 - Ein E-Book mit den besten SEO-Praktiken für Blogbeiträge, die 2024 relevant sind.
Ich hoffe das reicht. Ich freue mich auf unser Gespräch und bin
gespannt, was wir gemeinsam erreichen können!
Diese Website verwendet Cookies, um Dir das bestmögliche Benutzererlebnis zu bieten. Cookie-Informationen werden in Deinem Browser gespeichert und ermöglichen Funktionen wie die Erkennung, wenn Du zu meiner Website zurückkehrst, und hilfst mir zu verstehen, welche Bereiche der Website Du am interessantesten und nützlichsten findest.
3rd Party Cookies
Diese Website verwendet Google Analytics, um anonyme Informationen wie die Anzahl der Besucher und die beliebtesten Seiten zu sammeln.
Das Aktivieren dieses Cookies hilft mir, meine Website zu verbessern.
Bitte aktiviere zuerst die unbedingt erforderlichen Cookies, damit ich Deine Präferenzen speichern kann!