diff --git a/frontend/src/admin/pages/Logs.tsx b/frontend/src/admin/pages/Logs.tsx index 513ac30..5aeb361 100644 --- a/frontend/src/admin/pages/Logs.tsx +++ b/frontend/src/admin/pages/Logs.tsx @@ -53,20 +53,21 @@ export default function LogsPage() { }, [load]) const scrollRef = useRef(null) - const userScrolledUp = useRef(false) + const userScrolledDown = useRef(false) - // 检测用户是否向上滚动过 + // 检测用户是否向下滚动回看历史(旧日志在下方) const handleScroll = () => { const el = scrollRef.current if (!el) return - const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight < 50 - userScrolledUp.current = !atBottom + const atTop = el.scrollTop < 50 + userScrolledDown.current = !atTop } - // 加载后自动滚动到底部(仅当用户未向上滚动时) + // 列表最新在最上面(后端倒序返回);打开页面/自动刷新时定位到顶部=最新。 + // 用户向下滚动回看历史时暂停定位,拉回顶部即恢复。 useEffect(() => { - if (autoRefresh && !userScrolledUp.current && scrollRef.current) { - scrollRef.current.scrollTop = scrollRef.current.scrollHeight + if (autoRefresh && !userScrolledDown.current && scrollRef.current) { + scrollRef.current.scrollTop = 0 } }, [entries, autoRefresh])