import { ArrowSmallUp } from '@/components/HeroIcons' import { useEffect, useState } from 'react' /** * 回顶按钮 * @returns */ export default function ReadingProgress() { const [scrollPercentage, setScrollPercentage] = useState(0) useEffect(() => { let requestId function handleScroll() { const scrollHeight = document.documentElement.scrollHeight const clientHeight = document.documentElement.clientHeight const scrollY = window.scrollY || window.pageYOffset const percent = Math.floor((scrollY / (scrollHeight - clientHeight)) * 100) setScrollPercentage(percent) requestId = requestAnimationFrame(handleScroll) } handleScroll() // 初始化滚动位置 return () => { cancelAnimationFrame(requestId) } }, []) return (<>