#17 · 主分类: AI UI 组件与区块库

use-stick-to-bottom

ai chatbot chatgpt claude messages smooth-scrolling

一个轻量级React Hook,主要面向AI聊天应用,用于平滑地粘附到消息底部。

项目最后更新:06/04/26

GitHub Stars

772

Forks数量

58

贡献者数量

12

许可证

MIT

收录理由

流式输出的大模型对话界面有个很隐蔽的麻烦:新消息不断追加时,列表要始终贴住底部,同时视口不能乱跳。这个 Hook 不依赖 Safari 至今不支持的 overflow-anchor,改用 ResizeObserver 监听内容尺寸变化,配合基于速度的弹簧动画而不是固定时长的缓动函数,所以即使流式消息在生成过程中忽长忽短也能平稳跟随。用户一旦向上滚动,吸底效果会立即取消,而且库能准确区分真实滚动和自身动画产生的滚动,在移动端上也不会误判。既可以通过 refs 挂到现有组件上,也能直接用自带的组件,后者会提供上下文,让子组件随时查询 isAtBottom 或主动滚到底部。零依赖,不会给 React 项目增加额外负担。

相关文章

暂无针对该项目的文章。

如需补充新闻资讯、使用教程、应用测评等内容,欢迎 联系我们推荐选题或投稿。

同类热门项目