diff options
| author | Fuwn <[email protected]> | 2026-05-08 07:47:47 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-05-08 07:47:47 +0000 |
| commit | a69b12642237844e60bef7cb8abac7cbd074b53b (patch) | |
| tree | af03b84a664d054add03d988ef48ee8ab75fc0e9 /src/lib/LandingHero.svelte | |
| parent | feat(scroll): add global smooth scrolling via Lenis (diff) | |
| download | due.moe-a69b12642237844e60bef7cb8abac7cbd074b53b.tar.xz due.moe-a69b12642237844e60bef7cb8abac7cbd074b53b.zip | |
fix(scroll): route LandingHero scroll-down through Lenis
Lenis disables native CSS smooth scroll, so window.scrollTo({behavior:"smooth"}) jumps instantly. Expose the Lenis instance via a store and scroll through it, falling back to native when unavailable.
Diffstat (limited to 'src/lib/LandingHero.svelte')
| -rw-r--r-- | src/lib/LandingHero.svelte | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/LandingHero.svelte b/src/lib/LandingHero.svelte index b57aec85..9f5d0368 100644 --- a/src/lib/LandingHero.svelte +++ b/src/lib/LandingHero.svelte @@ -1,6 +1,7 @@ <script lang="ts"> import { env } from "$env/dynamic/public"; import localforage from "localforage"; +import lenis from "$stores/lenis"; let heroSection = $state<HTMLElement>(); @@ -10,7 +11,8 @@ const scrollPastHero = () => { const heroBottom = heroSection.getBoundingClientRect().bottom + window.scrollY; - window.scrollTo({ top: heroBottom, behavior: "smooth" }); + if ($lenis) $lenis.scrollTo(heroBottom); + else window.scrollTo({ top: heroBottom, behavior: "smooth" }); }; </script> |