【JS】设置滚动属性默认自动滚动到底部(overflow:scroll;)

news2024/11/29 12:32:46

文章目录

    • 核心代码
    • 应用场景

核心代码

  • 设置滚动属性默认自动滚动到底部:
// 获取设置了滚动属性的div标签
const div = document.getElementById('conversationalDiv');
// 设置滚动的顶点坐标为滚动的总高度
div.scrollTop = div.scrollHeight;

应用场景

场景:实现对话框,默认展示最新的对话内容

在这里插入图片描述

  • react 实现:
import { Input } from 'antd';
import { useState } from 'react';

function() {
	const [loading, setLoading] = useState(false);
	// 创建 dt dd 标签
	const createTag = (type, innerHTML) => {
		const dl = document.getElementById('conversationalDl');
		const tag = document.createElement(type);
		// 添加标签内容
		tag.innerHTML = innerHTML;
		if (dl) {
			// 向dl插入标签
			dl.appendChild(tag);
		}
		const div = document.getElementById('conversationalDiv');
		if (div) {
			// 设置滚动到最底部
			div.scrollTop = div.scrollHeight;
		}
	};
	const onConversationalSearch = async (val) => {
		// 创建dt标签,表示用户输入的内容
		createTag('dt', val);
		setLoading(true);
		try {
			const data = await getText(val);
			// 测试数据:
			// const data = "I'm good, how are you?"
			// 创建dd标签,表示另一边输入的内容
			createTag('dd', data);
		} catch (error) {}
		setLoading(false);
	};
	return ( <>
		<div id = "conversationalDiv" className = {styles.conversationalDiv} >
			<dl id = "conversationalDl" / >
		</div> 
		<Input.Search 
			placeholder = "Your sentence here..."
			allowClear 
			enterButton = "Send"
			onSearch = {onConversationalSearch}
		/> 
	</>)
}
  • 所需用到的css样式
.conversationalDiv {
  height: 256px;
  width: 100%;
  border: 1px solid #e5e7eb;
  overflow: auto;
}
.conversationalDiv dl {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  padding: 12px;
}
.conversationalDiv dl dt {
  display: inline-block;
  background-color: #2563eb;
  color: #fff;
  padding: 8px 12px;
  border-radius: 20px;
  margin-bottom: 10px;
}
.conversationalDiv dl dd {
  display: inline-block;
  background-color: #f9fafb;
  color: #000;
  padding: 8px 12px;
  border-radius: 20px;
  place-self: start;
  margin-bottom: 10px;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生命在于折腾——Obsidian笔记软件折腾记录(一)

一、开端 我使用过很多笔记软件&#xff0c;OneNote-语雀-Notability-GoodNotes-印象笔记-有道云笔记。 不得不说&#xff0c;我一直想拥有一款满足以下条件的笔记软件&#xff1a; 买断制。&#xff08;符合以下所有条件我考虑订阅&#xff09;ipad可手写。icloud可同步。Ma…

OA系统增加会议

目录 一.前期准备工作 A.建立数据库会议信息类 B.建立增加会议的jsp界面 1.注意事项 2.存储路径图片展示 C.构建JS 1.构建addmetting.js 2.导入Layui的formSelects&#xff08;为了下拉框选择值做准备&#xff09; 二.实现绑定多功能下拉框dao方法 A.查询所有用户 绑…

【UE4 塔防游戏系列】10-防御塔升级

目录 效果 步骤 一、根据防御塔等级修改子弹伤害 二、根据防御塔等级修改子弹速度 三、根据防御塔等级修改检测半径 四、根据防御塔等级修改子弹颜色 五、根据防御塔等级修改换弹时间 效果 步骤 一、根据防御塔等级修改子弹伤害 1. 打开“TowerBaseBullet_Child”&…

C#安装.Net平台科学计算库Math.Net Numerics

工作的时候需要使用到C#的Math.Net库来进行计算。 Math.Net库涵盖的主题包括特殊函数&#xff0c;线性代数&#xff0c;概率模型&#xff0c;随机数&#xff0c;插值&#xff0c;积分&#xff0c;回归&#xff0c;优化问题等。 这里记录一下&#xff0c;安装Math.Net库的过程…

【广州华锐互动】VR商场超市火灾事故应急演练系统

VR商场超市火灾事故应急演练系统由广州华锐互动开发&#xff0c;是一种基于虚拟现实技术的消防演练系统&#xff0c;可以帮助商场管理者和员工在计算机上进行火灾逃生演练&#xff0c;提高应对火灾的能力和安全意识。 首先&#xff0c;VR技术可以提供逼真的三维场景&#xff0…

re学习(19)[ACTF新生赛2020]easyre1(UPX脱壳)

文章链接&#xff1a;BUUCTF在线评测 参考视频&#xff1a;B站 【新手教程三】小Z带你学习什么是ESP定律和什么是堆栈平衡 &#xff1f; - 『脱壳破解区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn 题解&#xff1a; 工具脱壳 key"*F\"N,\"…

Element+Vue+OpenLayers webgis实战

WebGIS 信息系统-ElementVueOpenLayers ElementVueOpenLayers项目某校园的遥感影像作为底图多语言切换各种语言的配置文件自定义主题样式切换组件过渡动画 ElementVueOpenLayers项目 以 某校园的遥感影像作为底图 &#xff0c;通过OpenLayers将遥感影像加载到浏览器中&#…

Python的下载与安装教程

Python的下载安装 进入官网Python官网&#xff0c;主页如下 2.点击Downloads&#xff0c;下载最新版本的Python.目前是3.11.4 3.下载完成之后&#xff0c;打开安装包python-3.11.4-amd64.exe进行安装 因为我装了之前的版本&#xff0c;这里是Upgrade Now.正常情况是Instal…

提升车载娱乐体验;优化蓝牙通信,从MTU和连接参数着手

车载开发中&#xff0c;蓝牙通信是一项重要的技术&#xff0c;用于实现车辆与其他设备&#xff08;如手机、车载音响、传感器等&#xff09;之间的无线数据传输和通信。蓝牙通信在车载领域有多种应用&#xff0c;例如车辆诊断、音频播放、电话通话、导航信息传输等。 蓝牙通信…

高效利剑:利用 空号检测API 清洗客户数据

导言 在当今竞争激烈的商业环境中&#xff0c;拥有准确、可靠的客户数据是企业取得成功的关键。然而&#xff0c;不可避免地&#xff0c;客户数据库中会存在一些无效的电话号码&#xff0c;这可能导致市场的浪费和客户沟通的障碍。然而&#xff0c;现在有了一把高效利剑&#…

day03-python运算符的使用

常用运算符 算术运算符 运算符说明实例结果加112-减1-10*乘1*33/除法&#xff08;和数学中的规则一样&#xff0c;但是结果为浮点数&#xff09;4/22//整除&#xff08;只保留商的整数部分&#xff09;7 // 23%取余&#xff0c;求模&#xff0c;即返回除法的余数7 % 21**幂运…

深入理解Java虚拟机(四)虚拟机性能监控、基础故障处理工具

Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的高墙&#xff0c;墙外面的人想进去&#xff0c;墙里面的人却想出来。 给一个系统定位问题的时候&#xff0c;知识、经验是关键基础&#xff0c;数据是依据&#xff0c;工具是运用知识处理数据的手段。这里说的数据包括但…

酷开科技以内容为核心打造OTT大屏营销投放新体系

如何打造“因地制宜”的营销策略&#xff0c;围绕内容场景&#xff0c;搭建更具效能的OTT大屏营销投放体系&#xff1f;是一个值得思考的问题。 酷开科技OTT大屏营销&#xff0c; 以营销内容为核心、通过更加立体化的沟通模式&#xff0c;创新性整合和打通多元资源&#xff0c…

EXCEl——移除单元格中换行符

方法一&#xff1a;使用清除格式功能 步骤如下: 1.选中需要取消换行的单元格 2.在“开始"选项卡中找到"清除”功能&#xff0c;点击下拉菜单中的“清除格式" 3.这时单元格的换行就被取消了。 清除前效果图 清除后效果图 方法一&#xff1a;使用函数功能 步骤…

React和Vue生命周期

主要就是命名不同 目录 React 组件挂载 挂载前constructor() 挂载时render() 挂载后componentDidMount()&#xff1a;初始化节点 更新 更新时render()&#xff1a;prop/state改变 更新后componentDidUpdate() 卸载 卸载前componentWillUnmount()&#xff1a;清理 V…

计算机网络 day10 DNAT问题 - 堡垒机 - WLAN

目录 DNAT策略拓扑图&#xff1a; 问题一&#xff1a;当我们访问内网的Web服务的时候&#xff0c;我们防火墙服务器的80端口和Web服务器的8000端口是否需要一直调用程序监控呢&#xff1f; DNAT的作用就是可以帮助我们进行路由转发功能 问题二&#xff1a;当我们在继续DNAT…

wpf RadioButton自定义样式 圆角/直角变化 背景色渐变

样式部分 <LinearGradientBrush x:Key"GradientBrush_1" EndPoint"0.5,1" StartPoint"0.5,0"><GradientStop Offset"1" Color"#CEE5D1" /><GradientStop Offset"0" Color"#FAFAFA" /&…

全志F1C200S嵌入式驱动开发(u盘写读)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 f1c200s本身也支持usb接口。并且它的接口和v3s一样,有两个用途。第一个用途是在f1c200s进入fel状态之后,可以用sunxi-fel等工具完成norflash、nandflash的烧写;第二个用途,就是…

MySQL八股学习记录5MySQL锁from小林coding

MySQL八股学习记录5MySQL锁from小林coding 锁的总览全局锁表级锁表锁元数据锁意向锁AUTO-INC锁 行级锁Record LockGap LockNext-Key-Lock插入意向锁行级锁是如何作用的唯一索引等值查询 唯一索引范围查询非唯一索引等值查询 锁的总览 MySQL锁分为三种,分别是全局锁,表级锁,行级…

模拟行走机器人-python

leetcode第874题 链接https://leetcode.cn/problems/walking-robot-simulation 机器人在一个无限大小的 XY 网格平面上行走&#xff0c;从点 (0, 0) 处开始出发&#xff0c;面向北方。该机器人可以接收以下三种类型的命令 commands &#xff1a; -2 &#xff1a;向左转 90 度…