当前位置: 首页 > news >正文

AI会话问答的页面滚动处理(参考deepseek页面效果)

近期在接入deepseekR1的深度思考,研究了下deepseek官网的滚动效果,大概如下:用户发出消息后,自动滚动到页面最底部,让最新消息展示在视野中,这时候,我们先处理一次滚动:


const scrollDom = ref(null); // 获取DOM
if (scrollDom.value) {const maxScrollTop = robotScroll.value.scrollHeight - robotScroll.value.clientHeight;scrollDom.value.scrollTop = maxScrollTop;}

这时候,消息发出,AI开始回答,这时候,如果用户没有滚动页面,那么就依然是在底部,并且随着AI回答的文字渐渐冒出,我们去把页面慢慢滚动,保持一直可以看到最新冒出的消息。但是注意需要判断:用户如果滚动了页面(例如在查看顶部其他回答),我们是不能打断用户操作的,这个时候我们不进行页面滚动处理。如下:

// 判断在最底部才继续黏贴在底部滚动
const stickToBottom = () => {const scrollEl = scrollDom.value;if (!scrollEl) return;// 记录当前滚动状态const currentScrollTop = scrollEl.scrollTop;const currentMaxScroll = scrollEl.scrollHeight - scrollEl.clientHeight;// 判断是否已经到底部(允许1px误差)const isAtBottom = currentScrollTop >= currentMaxScroll - 1;nextTick(() => {if (!scrollEl) return;// 只有当前在底部时才滚动if (isAtBottom) {console.log('当前到达底部了,滚动√')const newMaxScroll = scrollEl.scrollHeight - scrollEl.clientHeight;scrollEl.scrollTop = newMaxScroll;} else {console.log('未到达底部,不滚动')}});
}

这个时候用户的体验感就比较好了~~

http://www.lryc.cn/news/536665.html

相关文章:

  • GRN前沿:DGCGRN:基于有向图卷积网络的基因调控网络推理
  • MongoDB 入门操作指南
  • 共享设备管理难?MDM助力Kiosk模式一键部署
  • HttpClient-Java程序中发送Http请求
  • 硬件-电源-隔离与非隔离的区别
  • Kubernetes 最佳实践:Top 10 常见 DevOps/SRE 面试问题及答案
  • Training for Computer Use
  • PH热榜 | 2025-02-14
  • 工业物联网远程监控系统优化方案,基于巨控GRM553Y-CHE
  • 报名丨Computer useVoice Agent :使用 TEN 搭建你的 Mac Assistant
  • Flutter 中的生命周期
  • 深度整理总结MySQL——redoLog日志工作原理
  • 备战蓝桥杯 Day1 回顾语言基础
  • 小记大模型本地部署:vllm, lmdeploy, ollama
  • MySQL查看存储过程和存储函数
  • 从零到一:开发并上线一款极简记账本小程序的完整流程
  • 卷积神经网络实战人脸检测与识别
  • 【面试题系列】Java 多线程面试题深度解析
  • 【C语言】左旋字符串(三种实现方式)
  • 数论补充 之 前后缀分解问题
  • IoTDB 集群节点 IP 改变,如何更新集群
  • 【AI系列】从零开始学习大模型GPT (2)- Build a Large Language Model (From Scratch)
  • webshell通信流量分析
  • 数据可视化+SpringBoot+协同过滤推荐算法的美食点餐管理平台
  • DeepSeek 关联 Word 使用教程:解锁办公新效率
  • [极客大挑战 2019]Havefun1
  • 基于Swift实现仿IOS闹钟
  • Threadlocal的实现原理
  • 线程池处理异常
  • RabbitMQ配置SSL证书