uniapp实现聊天消息触,vue3和vue2实现聊天消息触底 scrollTop ,scrollHeight Pc端H5端都适用

uniapp触底SDN链接如下(本人的另一篇博客)

uniapp聊天时时触底链接
Pc端在这里插入图片描述
模拟手机端H5
在这里插入图片描述

vue3写法

<template><div><!-- 聊天窗体 --><div class="test" id="gundong"><div class="text" v-for="p in chat">{{ p.info }}</div></div><div style="display: flex"><!-- 输入窗体 --><el-input v-model="text"></el-input><!-- 确认按钮 --><el-button @click="take">发送</el-button></div></div>
</template><script setup lang="ts">
import { ref, nextTick, onMounted, watch, HtmlHTMLAttributes } from "vue";
import { storeToRefs } from "pinia";
import { userCeshi } from "@/pinia/module/user-ceshi";
import { userInfoCeshi } from "@/pinia/module/userInfo-ceshi";
const text = ref<any>("");
const chat = ref<any[]>([{ info: "---点赞关注---" },{ info: "---点赞关注---" },{ info: "---点赞关注---" },{ info: "---点赞关注---" },{ info: "---点赞关注---" },
]);
const take = () => {text.value != "" && chat.value.push({ info: ` ${text.value}` });text.value = "";// 核心代码// 滚动nextTick(() => {let msg = document.getElementById("gundong"); // 获取对象//     scrollTop是滚动条的当前高度。默认是0// scrollHeight是滚动条的整体高度// 只要动态修改滚动条到顶部的距离等于div的高度,那么久实现滚动条定位在底部了。(msg as any).scrollTop = (msg as any).scrollHeight; // 滚动高度});
};
take();
</script><style scoped lang="less">
.test {border: 1px solid red;padding: 10px;overflow: hidden;box-sizing: border-box;width: 100%;height: 300px;overflow: auto;.text {margin-left: auto;width: 200px;height: auto;background-color: black;border-radius: 10px;color: #fff;margin-top: 10px;}
}
</style>

vue2写法

 <template><div><!-- 聊天窗体 --><div class="test" id="gundong"><div class="text" v-for="p in chat">{{ p.info }}</div></div><div style="display: flex"><!-- 输入窗体 --><el-input v-model="text"></el-input><!-- 确认按钮 --><el-button type="primary" @click="take">发送</el-button></div></div>
</template>
<script>
export default {data() {return {text: "",chat: [{ info: "---点赞关注---" },{ info: "---点赞关注---" },{ info: "---点赞关注---" },{ info: "---点赞关注---" },{ info: "---点赞关注---" },],};},methods: {task() {// 这段代码不好使就使用下面的if(){}代码this.text != "" && this.chat.push({ info: ` ${text.value}` });this.text = "";this.$nextTick(() => {let msg = document.getElementById("gundong"); // 获取对象//     scrollTop是滚动条的当前高度。默认是0// scrollHeight是滚动条的整体高度// 只要动态修改滚动条到顶部的距离等于div的高度,那么久实现滚动条定位在底部了。msg.scrollTop = msg.scrollHeight; // 滚动高度});// if (this.text.length > 0) {//   this.chat.push({ info: ` ${text.value}` });//   this.text = "";//   // 核心代码//   // 滚动//   this.$nextTick(() => {//     let msg = document.getElementById("gundong"); // 获取对象//     msg.scrollTop = msg.scrollHeight; // 滚动高度//   });// }},},
};
</script><style scoped lang="less">
.test {border: 1px solid red;padding: 10px;overflow: hidden;box-sizing: border-box;width: 100%;height: 300px;overflow: auto;.text {margin-left: auto;width: 200px;height: auto;background-color: black;border-radius: 10px;color: #fff;margin-top: 10px;}
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22050.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server数据库 -- 表的高级查询

文章目录 一、子查询 嵌套子查询相关子查询二、查询运算 并运算union交运算intersect差运算except三、函数的使用 if语句while语句case语句四、总结 前言 高级子查询是对查询更灵活的运用&#xff0c;学会了高级查询将对数据库使用有很大的帮助。 一、子查询 1、子查询简介 在…

比亚迪海外市场势起

监制 | 何玺 排版 | 叶媛 海外市场正成为比亚迪新的增长点。 据媒体报道&#xff0c;从去年下半年至今&#xff0c;比亚迪已经在至少四个国家的纯电车型市场占据“销冠”位置。对于国内用户群体来说&#xff0c;比亚迪销量“霸屏”早已不是新闻&#xff0c;但在海外也保持这个…

易基因“多区域DNA甲基化检测探针设计及其检测方法”获专利授权!

大家好&#xff0c;这里是专注表观组学十余年领跑多组学科研服务的易基因。 DNA甲基化是表观遗传学研究中&#xff0c;修饰最为稳定&#xff0c;含量最为丰富&#xff0c;对基因调控最为活跃、途径最为广泛的一种修饰。不同基因区域或位点的修饰与胚胎发育、疾病发生和发展密切…

数据库--->MySQL(2)【事务、SQL优化】

文章目录 事务什么是事务&#xff1f;隔离性中的不同隔离级别事务实现的原理隔离级别的实现原理&#xff08;MVCC&#xff09;MySQL中的锁机制 SQL优化 事务 什么是事务&#xff1f; 事务就是逻辑上的一组操作&#xff0c;在同一个事务中&#xff0c;如果有多条sql语句执行&am…

android studio 使用lib中的framework.jar编译

本文参考了网上搜索到的内容总结了一下&#xff0c;感谢大神们的无私奉献。 在App中的build.gradle中的android{}下添加&#xff1a; android{...gradle.projectsEvaluated {tasks.withType(JavaCompile) {Set<File> fileSet options.bootstrapClasspath.getFiles()Li…

100种思维模型之安全边际思维模型-92

安全边际&#xff0c; 简而言之即距离某一件糟糕的事件发生&#xff0c;还有多大的空间&#xff0c;安全边际越高&#xff0c;我们就越安全&#xff01; 安全边际思维模型一个 让生活变得更从容 的 思维模型。 01、何谓安全边际思维模型 一、安全边际思维 安全边际 源于…

(9)基础强化:元字符,正则表达式,匹配,提取组,Regex,Match与Matches

一、作业 1、问&#xff1a;下面解压程序出错&#xff0c;什么原因&#xff1f; string src "E:\1.txt";string des "E:\2.txt";using (FileStream read File.OpenRead(src)){using (GZipStream gzip new GZipStream(read, CompressionMode.Decompress…

PHP代码审计(一)之PHP代码审计的意义

PHP代码审计的意义 什么是代码审计 什么是代码审计&#xff1f;代码审计就是获取目标的源代码&#xff0c;这个目标可以是一个网站&#xff0c;也可以是一个手机app&#xff0c;只要我们得到了目标的源代码&#xff0c;我们就可以去挖掘目标系统的漏洞&#xff0c;代码审计是…

电脑上有哪些好用的小众软件?快看看这里!

​ 电脑上的各类软件有很多&#xff0c;除了那些常见的大众化软件&#xff0c;还有很多不为人知的小众软件&#xff0c;专注于实用功能&#xff0c;简洁干净、功能强悍。 自动化工具——AutoHotkey ​ AutoHotkey是一个自动化工具&#xff0c;可以让你创建和运行各种脚本&…

快快快快快快快快快快排

作者简介&#xff1a;დ旧言~&#xff0c;目前大一&#xff0c;现在学习Java&#xff0c;c&#xff0c;Python等 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 望小伙伴们点赞&#x1f44d;收藏✨加关注哟&#x1f495;&#x1f495; C语言实现快排☺️ ℹ️…

Spring Boot 系列1 -- 概念、创建和使用

目录 1. 什么是Spring Boot? 2. Spring Boot 的优点 3. Spring Boot 项目的创建 3.1 使用IDEA创建 3.2 网页版创建 4. 项目目录和项目运行 4.1 项目目录 4.2 运行项目 4.3 使用Spring Boot项目实现网页输出Hello World 5. 路径问题 1. 什么是Spring Boot? Spring …

jdk11缺少jre的问题解决

问题&#xff1a;升级jdk的时候文件中缺少jre&#xff0c;导致项目启动报错 jdk11不在默认用户强制安装jre&#xff0c;所以jdk包中不在包含jre文件 解决步骤1&#xff1a;进入jdk安装包的根目录&#xff0c;输入cmd 解决步骤2&#xff1a;在cmd中输入以下命令 bin\jlink.e…