diff --git a/src/lib/lenis.js b/src/lib/lenis.js new file mode 100644 index 0000000..1914784 --- /dev/null +++ b/src/lib/lenis.js @@ -0,0 +1,20 @@ +import Lenis from 'lenis'; + +let lenisInstance = null; + +export const lenisScrollInstance = () => { + if (!lenisInstance) { + const lenis = new Lenis(); + + function raf(time) { + lenis.raf(time); + requestAnimationFrame(raf); + } + + requestAnimationFrame(raf); + + lenisInstance = lenis; + } + + return lenisInstance; +}; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index b95538c..69c8a04 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -3,8 +3,14 @@ import Footer from '$lib/components/footer.svelte'; import './layout.css'; import favicon from '$lib/assets/favicon.svg'; + import { onMount } from 'svelte'; + import 'lenis/dist/lenis.css'; + import { lenisScrollInstance } from '$lib/lenis'; let { children } = $props(); + onMount(() => { + lenisScrollInstance(); + });