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

el-scrollbar实现自动滚动到底部(AI聊天)

目录

项目背景

实现步骤

实现代码

完整示例代码


项目背景

chatGPT聊天消息展示滚动面板,每次用户输入提问内容或者ai进行流式回答时需要不断的滚动到底部确保展示最新的消息。

实现步骤

采用element ui 的el-scrollbar作为聊天消息展示组件。

通过操作dom来实现滚动到底部。

通过vue的watch来监听聊天消息列表的变动。

实现代码

  <el-scrollbar height="400px" ref='scrollMenuRes'><!-- 内容 --></el-scrollbar>
//滚动面板自动滑动到底部
const scrollToBottom = () => {if (scrollMenuRes.value) {const container = scrollMenuRes.value.$el.querySelector('.el-scrollbar__wrap');container.style.scrollBehavior = 'smooth'; // 添加平滑滚动效果container.scrollTop = container.scrollHeight;}
};

完整示例代码

<template><div><el-scrollbar height="400px" ref='scrollMenuRes'><!-- 内容 --><h1>消息:1</h1><h1>消息:11</h1><h1>消息:111</h1><h1>消息:1111</h1><h1>消息:11111</h1><h1>消息:111111</h1><h1>消息:1111111</h1><h1>消息:11111111</h1><h1>消息:111111111</h1><h1>消息:1111111111</h1><h1>消息:11111111111</h1><h1>消息:111111111111</h1><h1>消息:1111111111111</h1></el-scrollbar></div>
</template><script setup lang="ts">
import { ref,onMounted,watch } from 'vue';
import { ElScrollbar } from 'element-plus';
//聊天消息滚动面板dom
const scrollMenuRes = ref<any>(null);//滚动面板自动滑动到底部
const scrollToBottom = () => {if (scrollMenuRes.value) {const container = scrollMenuRes.value.$el.querySelector('.el-scrollbar__wrap');container.style.scrollBehavior = 'smooth'; // 添加平滑滚动效果container.scrollTop = container.scrollHeight;}
};onMounted(() => {scrollToBottom();
})
</script><style scoped></style>
http://www.lryc.cn/news/395585.html

相关文章:

  • 开源去除背景的项目:rembg 安装和部署
  • Docker 使用基础(1)—镜像仓库
  • Git详细安装和使用教程
  • LeetCode题练习与总结:反转字符串中的单词--151
  • 2.pwn的linux基础(计算机内部数据结构存储形式)
  • 67.SAP FICO-凭证类型学习
  • 井字游戏00
  • GEE代码实例教程详解:地表温度与土地覆盖类型分析
  • RK3568------Openharmony 4.0-Release 浏览器部署安装
  • 【kafka】可视化工具cmak(原kafka-manager)安装问题解决
  • 【转载】目标检测mAP的含义
  • 智慧校园行政办公-红头文件功能概述
  • 汽车IVI中控开发入门及进阶(三十三):i.MX linux开发之开发板
  • Redis基础教程(十八):Redis管道技术
  • 深度学习(笔记内容)
  • 阿里云登陆Centos7
  • 探索C嘎嘎的奇妙世界:第十九关---STL(list的模拟实现)
  • 【分布式系统三】监控平台Zabbix对接grafana(截图详细版)
  • SAPUI5基础知识11 - 组件配置(Component)
  • Spring最早的源码
  • 热烈祝贺!全视通多家客户上榜全球自然指数TOP100!
  • 常用接口避免频繁请求
  • C++入门基础
  • Unicode 与 UTF-8 的区别与联系
  • PHP MySQL 简介
  • Spring容器加载Bean和JVM加载类
  • 《简历宝典》04 - 简历的“个人信息”模块,要写性别吗?要放照片吗?
  • TTS模型汇总
  • js打印出堆栈
  • 论文阅读:A Survey on Evaluation of Large Language Models