vue3动态监听div高度案例
案例场景

场景描述:现在左边的线条长度需要根据右边盒子的高度进行动态变化
实践代码案例
HTML部分
<div v-for="(device, index) in devices" :key="index"><!-- 动态设置 .left-bar 的高度 --><div class="left-bar" :style="{ height: `${contentHeights[index] || 30}px` }"></div><div :ref="(el) => { contentRefs[index] = el as HTMLElement }"><span>设备编号:{{ device.code }}</span><span>异常信息:{{ device.info }}</span></div>
</div>
JS部分
import { reactive, toRefs, ref, onMounted, watch, nextTick } from 'vue';interface Device {code: string;status: string;info: string;
}const state = reactive({devices:[{code: 'JS23053001',status: '异常',info: '提升激光仪通讯故障 提升激光仪通讯故障 备用(从站数据故障) 备用(从站数据故障)'},{code: 'JS23053002',status: '异常',info: '货物左超 过载保护 断绳保护 超速保护 行走超限 升降超限'},{ code: 'JS23053003', status: '正常', info: '正常' },{ code: 'JS23053003', status: '正常', info: '正常' },{code: 'JS23053003',status: '异常',info: '行走变频器通讯故障 行走变频器通讯故障 货叉1变频器通讯故障'}],
});const { devices } = toRefs(state);// 用于存储每个 content 元素的引用
const contentRefs = ref<(HTMLElement | null)[]>([]);// 存储每个设备的 .content 元素的高度
const contentHeights = ref<number[]>([]);// 更新每个设备的 content 高度
const updateContentHeight = () => {
contentHeights.value = contentRefs.value.map(contentRef => {// 获取每个 content 元素的高度return contentRef ? contentRef.clientHeight : 0;});
};// 监听设备列表变化,重新更新高度
watch(() => state.devices, () => {nextTick(() => updateContentHeight()); // 确保 DOM 渲染完成后获取高度
}, { immediate: true });
Style部分(left-bar)
.device-item .left-bar {width: 2px; // 宽度margin-right: 0.2rem; // 距离
}
注意:
- 使用 nextTick 确保 DOM 渲染完成后再更新 contentHeights。这能保证获取到准确的高度信息
- 给 .left-bar 设置一个默认高度(例如 30px)来确保它始终可见,即使计算出来的高度是 0 时。你可以调试默认高度,并逐步确保 contentHeights 数组能够正常更新
- contentRefs 是一个数组,用来存储每个 .content 的引用。由于 v-for 渲染的组件是异步的,可能 contentRefs 没有及时更新,导致没有正确获取到每个 .content 的高度
相关文章:
vue3动态监听div高度案例
案例场景 场景描述:现在左边的线条长度需要根据右边盒子的高度进行动态变化 实践代码案例 HTML部分 <div v-for"(device, index) in devices" :key"index"><!-- 动态设置 .left-bar 的高度 --><div class"left-bar"…...
数据转换 | Matlab基于SP符号递归图(Symbolic recurrence plots)一维数据转二维图像方法
目录 基本介绍程序设计参考资料获取方式 基本介绍 Matlab基于SP符号递归图(Symbolic recurrence plots)一维数据转二维图像方法 符号递归图(Symbolic recurrence plots)是一种一维时间序列转图像的技术,可用于平稳和非平稳数据集;对噪声具有…...
分类算法——逻辑回归 详解
逻辑回归(Logistic Regression)是一种广泛使用的分类算法,特别适用于二分类问题。尽管名字中有“回归”二字,逻辑回归实际上是一种分类方法。下面将从底层原理、数学模型、优化方法以及源代码层面详细解析逻辑回归。 1. 基本原理 …...
只允许指定ip远程连接ssh
我们都会使用securtcrt或者xshell等软件进行远程登录,这样虽然会给我们带来很多便捷,但是同样会存在一定的风险。有很多人专门通过重复的扫描试图破解我们的linux服务器,从而获取免费的“肉鸡”。因此我们可以通过设置hosts.allow和hosts.den…...
Rust 力扣 - 2841. 几乎唯一子数组的最大和
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们遍历长度为k的窗口,用一个哈希表记录窗口内的所有元素(用来对窗口内元素去重),我们取哈希表中元素数量大于等于m的窗口总和的最大值 题解代码 use std::coll…...
TwinCL: A Twin Graph Contrastive Learning Model for Collaborative Filtering
TwinCL: A Twin Graph Contrastive Learning Model for Collaborative Filtering 摘要 在推荐和协同过滤领域,图对比学习(Graph Contrasive Learning,GCL)已经成为一种有影响的方法。然而,对比学习有效性的原因还没有…...
如何区分实例化网格中的每个实例
1)如何区分实例化网格中的每个实例 2)项目在模拟器上切换程序后有概率画面冻结 3)Unity工程导入团结引擎,GUID会变化,导致引用关系丢失 4)Mask在Android平台下渲染异常 这是第407篇UWA技术知识分享的推送&a…...
理解 WordPress | 第一篇:与内容管理系统的关系
初步了解 WordPress 在互联网世界里,WordPress 是一个家喻户晓的名字。它是一个开源的内容管理系统(Content Management System,简称 CMS),帮助用户轻松创建和管理网站。WordPress 诞生于 2003 年,最初是一…...
Python游戏脚本之实现飞机大战(附源码)
一.游戏设定 游戏界面如下图所示: 游戏的基本设定: 敌方共有大中小3款飞机,分为高中低三种速度; 子弹的射程并非全屏,而大概是屏幕长度的80%; 消灭小飞机需要1发子弹,中飞机需要8发,大飞机需要20发子弹; 每消灭一架小飞机得1000分,中飞机6000分,大飞…...
使用Spring Boot搭建简单的web服务
1 引言 1.1 Spring Boot简介 Spring Boot是由Pivotal团队提供的一套开源框架,旨在简化Spring应用的创建及部署。 一、核心设计思想 Spring Boot的核心设计思想是“约定优于配置”(Convention Over Configuration,简称COC)。这…...
【IF-MMIN】利用模态不变性特征进行缺失模态的鲁棒多模态情感识别
代码地址:github地址传送 文章是基于MMIN的改进 -> MMIN传送 abstract 多模态情感识别利用跨模态的互补信息来获得性能。然而,我们不能保证所有模式的数据总是存在于实践中。在跨模态数据缺失预测研究中,异质性模态之间的固有差异即模态…...
RGB图像,排列方式NHWC适合CPU计算,NCHW适合GPU计算
之前写过笔记OpenCV读取图像时按照BGR的顺序HWC排列,PyTorch按照RGB的顺序CHW排列,HWC格式排列,那么内存位置计算公式是? 在比较NHWC(channels_last)和NCHW(channels_first)这两种图像数据通道格式的效率时…...
布朗运动
内容来源 数理金融初步(原书第3版)Sheldon M. Ross著 冉启康译 机械工业出版社 布朗运动 定义 如果随机变量集合 X ( t ) X(t) X(t) 满足以下条件 X ( 0 ) X(0) X(0) 是一个给定的常数 对所有正数 y y y 和 t t t,随机变量 X ( y t …...
WPF+MVVM案例实战(二十二)- 制作一个侧边弹窗栏(CD类)
文章目录 1、案例效果1、侧边栏分类2、CD类侧边弹窗实现1、样式代码实现2、功能代码实现3 运行效果4、源代码获取1、案例效果 1、侧边栏分类 A类 :左侧弹出侧边栏B类 :右侧弹出侧边栏C类 :顶部弹出侧边栏D类 :底部弹出侧边栏2、CD类侧边弹窗实现 1、样式代码实现 在原有的…...
集成旺店通旗舰版售后单至MySQL数据库
旺店通旗舰版-售后单集成到MySQL的技术实现 在数据驱动的业务环境中,如何高效、准确地将旺店通旗舰奇门的数据集成到MySQL数据库,是许多企业面临的重要挑战。本文将分享一个具体的系统对接案例:旺店通旗舰版-售后单-->BI泰海-售后订单表(…...
【Linux】从零开始使用多路转接IO --- epoll
当你偶尔发现语言变得无力时, 不妨安静下来, 让沉默替你发声。 --- 里则林 --- 从零开始认识多路转接 1 epoll的作用和定位2 epoll 的接口3 epoll工作原理4 实现epollserverV1 1 epoll的作用和定位 之前提过的多路转接方案select和poll 都有致命缺点…...
爬虫学习4
from threading import Thread#创建任务 def func(name):for i in range(100):print(name,i)if __name__ __main__:#创建线程t1 Thread(targetfunc,args("1"))t2 Thread(targetfunc, args("2"))t1.start()t2.start()print("我是诛仙剑")from …...
CTF之web题集详情随手笔记
《Web安全》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484238&idx1&snca66551c31e37b8d726f151265fc9211&chksmc0e47a12f793f3049fefde6e9ebe9ec4e2c7626b8594511bd314783719c216bd9929962a71e6&scene21#wechat_redirect 1 WEB 1 靶场目…...
TDengine 集群能力:超越 InfluxDB 的水平扩展与开源优势
随着物联网、车联网等领域的快速发展,企业所面临的数据采集量呈爆炸式增长,这对 IT 基础设施和数据库提出了严峻挑战。传统单机版数据库逐渐无法应对高并发的数据写入和复杂的查询需求。因此,底层数据库必须具备水平扩展能力,以确…...
MATCH_DIRECT_BOOT_AWARE和MATCH_DIRECT_BOOT_UNAWARE
PackageManager.MATCH_DIRECT_BOOT_AWARE和PackageManager.MATCH_DIRECT_BOOT_UNAWARE 在Android系统中,PackageManager类提供了一些标志位,用于控制查询系统中的应用和组件时的行为。其中,MATCH_DIRECT_BOOT_AWARE和MATCH_DIRECT_BOOT_UNAWA…...
【风电功率预测】【多变量输入单步预测】基于VMD-TCN-BiGRU的风电功率预测研究附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。 🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &…...
Wireshark实战识别与防御ARP欺骗攻击
1. 为什么ARP欺骗不是“黑客电影”里的特效,而是你每天都在裸奔的真实风险 很多人第一次听说ARP欺骗,是在某部电影里看到主角敲几行命令,对面电脑就突然断网、弹出奇怪窗口、甚至开始自动转账——然后心里一紧:“这玩意儿真能这么…...
【流体】对沼气厂管道系统进行流体动力学设计和成本优化(最小化总年化成本TAC)【含Matlab源码 15560期】
💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…...
灾变瞬间生成人员分布图,为抢险决策提供可靠依据 ——视频孪生智能态势研判矿山抢险决策技术方案
灾变瞬间生成人员分布图,为抢险决策提供可靠依据——视频孪生智能态势研判矿山抢险决策技术方案一、方案引言煤矿井下瓦斯爆炸、顶板垮塌、透水突涌等灾害具备瞬时爆发、连锁破坏、环境骤变的典型特征。险情发生短短数分钟内,巷道结构受损变形、供电通信…...
XELFViewer:3步快速上手,免费开源的跨平台ELF文件分析神器
XELFViewer:3步快速上手,免费开源的跨平台ELF文件分析神器 【免费下载链接】XELFViewer ELF file viewer/editor for Windows, Linux and MacOS. 项目地址: https://gitcode.com/gh_mirrors/xe/XELFViewer 你是否曾经面对Linux系统的二进制文件感…...
使用Python快速接入Taotoken聚合大模型平台完整教程
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Python快速接入Taotoken聚合大模型平台完整教程 对于希望快速体验不同大模型能力的Python开发者而言,通过一个统一…...
四大巨头AI红队测试报告:AI成「专家级卷王」,却也学会「职场潜规则」
AI效率惊人:完成人类数周的软件项目在代码重构、漏洞发现、系统优化等「易爬坡型」任务上,AI智能体展现出令人窒息的统治力,能独立发现系统漏洞,重写复杂代码架构,完成人类专家需要数周才能交付的真实软件项目。Anthro…...
从云服务器到树莓派:不同场景下Linux IP地址类型的管理与查看技巧(ip/nmcli实战)
从云服务器到树莓派:Linux IP地址管理的场景化实战指南在混合计算环境中工作的开发者常常面临一个看似简单却充满陷阱的问题:如何快速确定当前Linux设备的IP地址类型?这个问题在公有云、本地虚拟机和嵌入式设备等不同场景下有着截然不同的答案…...
JMeter接口测试进阶:从功能验证到生产级性能工程
1. 这不是“点点点就能跑通”的接口测试,而是你真正能扛住压测的底气很多人第一次打开 JMeter,以为它只是个“图形化 Postman”——填 URL、选方法、点执行,看到绿色 Success 就觉得“接口测完了”。我带过三届测试团队,几乎每届都…...
企业单点登录(SSO)迁移DeepSeek的最后72小时:金融级审计日志、国密SM2签名、等保2.0合规 checklist
更多请点击: https://codechina.net 第一章:企业单点登录(SSO)迁移DeepSeek的最后72小时:金融级审计日志、国密SM2签名、等保2.0合规 checklist 在核心交易系统上线前72小时,某全国性股份制银行完成SSO服务…...
