使用 Rust Axum + React 实现了一个用于放在 Nas 上存储一些临时文本、文件的服务,支持上传文件和文件夹,Github 地址是:[https://github.com/tonitrnel/synclink]( https://github.com/tonitrnel/synclink)

目前的风格是类似聊天应用那种,输入框在下面,列表在上面并且倒序排列的,如图:

![screenshot1.png]( https://raw.githubusercontent.com/tonitrnel/synclink/dev/docs/screenshot1.png)

目前实现的思路:

首次加载:先显示 loading, 每一项数据加载完成后再滚动到底部,关闭 loading

加载之前的:记录当前 scrollTop 位置,每一项数据加载完成后再滚动至记录的 scrollTop 位置

遇到的问题:

因为数据是动态加载的导致高度变化时滚动位置都会抖动,Chrome 还好,Firefox 一不留神就不知道滚动到什么位置了。

每次向上滚动时,载入之前的记录时会导致浏览器滚动到列表顶部,就算我用 JS 重新滚动到到之前的位置也会导致闪烁,整体感觉很不流畅丝滑。

请问各位大佬知道有什么好的实现方式的吗?谢谢
举报· 33 次点击
登录 注册 站外分享
1 条回复  
horizon 初学 2024-9-13 13:40:09
https://github.com/fercel/ai-chatbot/blob/main/lib/hooks/use-scroll-anchor.tsx
返回顶部