diff --git a/src/modules/mileage/MonitoringView.tsx b/src/modules/mileage/MonitoringView.tsx index 6117266..eb6d780 100644 --- a/src/modules/mileage/MonitoringView.tsx +++ b/src/modules/mileage/MonitoringView.tsx @@ -179,19 +179,26 @@ export default function MonitoringView() { }, [loadFirstPage]); // 滚动触底检测 + 回到顶部按钮 + const loadMoreRef = useRef(loadMore); + loadMoreRef.current = loadMore; + useEffect(() => { const handleScroll = () => { - const scrollY = window.scrollY; - setShowBackToTop(scrollY > 600); + const scrollY = window.scrollY || document.documentElement.scrollTop; + setShowBackToTop(scrollY > 400); const scrollHeight = document.documentElement.scrollHeight; const clientHeight = window.innerHeight; - if (scrollHeight - scrollY - clientHeight < 200) { - loadMore(); + if (scrollHeight - scrollY - clientHeight < 300) { + loadMoreRef.current(); } }; window.addEventListener('scroll', handleScroll, { passive: true }); - return () => window.removeEventListener('scroll', handleScroll); - }, [loadMore]); + document.addEventListener('scroll', handleScroll, { passive: true }); + return () => { + window.removeEventListener('scroll', handleScroll); + document.removeEventListener('scroll', handleScroll); + }; + }, []); const scrollToTop = () => { window.scrollTo({ top: 0, behavior: 'smooth' });