From c9bc8023ed7aa36e9ba9071f743348dcf115bc0c Mon Sep 17 00:00:00 2001 From: Mackie Date: Sun, 7 Jun 2026 21:57:37 +0800 Subject: [PATCH] scroll --- src/components/ScrollToTop.tsx | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/components/ScrollToTop.tsx diff --git a/src/components/ScrollToTop.tsx b/src/components/ScrollToTop.tsx new file mode 100644 index 0000000..c8b80e3 --- /dev/null +++ b/src/components/ScrollToTop.tsx @@ -0,0 +1,25 @@ +'use client' + +import { useEffect, useState } from 'react' + +export default function ScrollToTop() { + const [visible, setVisible] = useState(false) + + useEffect(() => { + const onScroll = () => setVisible(window.scrollY > 400) + window.addEventListener('scroll', onScroll) + return () => window.removeEventListener('scroll', onScroll) + }, []) + + if (!visible) return null + + return ( +