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

判断css文字发生了截断,增加悬浮提示

示例:

固定显示宽度,溢出显示...,利用了css的属性,想要实现成下面这样: 

针对溢出的文字,hover显示全部。 

提示很好加,使用tooltip组件就行了,难点是如何判断是否发生了文字溢出。

利用dom元素的可视宽度 clientWidth 实际宽度 scrollWidth 不同就可以比较出是否发生了文字溢出。

 实际宽度 > 可视宽度  = 文字溢出

那么就可以依此来判断,如下图所示,给各行增加ref属性,鼠标移入时判断是否显示对应行的提示信息。

我这里之所以鼠标移入时触发计算,是因为我卡片的宽度是动态变化的,若你那块内容宽度固定,可以在数据获取完成之后直接计算showTooltipObj的值。

全部代码如下图所示:

<template><div class="card"><ul><li v-for="(item, index) in rows" :key="item.key" class="content"><b>{{ item.label }}:</b><el-tooltipeffect="dark"placement="top":disabled="!showTooltipObj[index]"max-width="600px"><div slot="content"><span>{{ data[item.key] || '--' }}</span></div><span:ref="`rowValue${index}`"class="value"@mouseenter="mouseenterFn(index)"><span>{{ data[item.key] || '--' }}</span></span></el-tooltip></li></ul></div>
</template><script>
export default {// eslint-disable-next-line vue/multi-word-component-namesname: "Card",data() {// 这里存放数据return {rows: [{label: "姓名",key: "name",},{label: "年龄",key: "age",},{label: "爱好",key: "hobby",}],data: {name: "张三",age: 10,hobby: "吃饭、睡觉、打篮球、玩玩玩玩玩玩玩玩玩玩玩玩玩玩玩玩玩玩玩玩玩",},showTooltipObj: {},};},methods: {mouseenterFn(index) {this.$nextTick(() => {const dom = this.$refs[`rowValue${index}`][0];let flag = false;// 实际宽度 > 可视宽度  文字溢出if (dom.scrollWidth > dom.clientWidth) {flag = true;}this.$set(this.showTooltipObj, index, flag);});},},
};
</script>
<style lang='scss' scoped>
.card {margin: 40px;width: 400px;box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.16);border: 1px solid #d7d7d7;box-sizing: border-box;padding: 20px 0;li.content {margin: 0 20px;line-height: 22px;display: flex;b {white-space: nowrap;}.value {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}}
}
</style>

相关文章:

判断css文字发生了截断,增加悬浮提示

示例&#xff1a; 固定显示宽度&#xff0c;溢出显示...&#xff0c;利用了css的属性&#xff0c;想要实现成下面这样&#xff1a; 针对溢出的文字&#xff0c;hover显示全部。 提示很好加&#xff0c;使用tooltip组件就行了&#xff0c;难点是如何判断是否发生了文字溢出。…...

day33-37-SpringBootV12(整合Spring,SpringMVC,Mybatis,日志,api测试等框架)

ssm spring --> applicationContext.xml配置文件 springmvc --> springmvc.xml配置文件 mybatis —> mybatis-config.xml配置文件 —> springboot优化了之前的框架配置,思想是约定大于配置 一、引言 1.1 初始化配置 为了使用SSM框架去开发&#xff0c;准备SSM…...

如何处理好面试中的“压力测试”?

作为一名求职者&#xff0c;在面试时有时遇到的是压力测试&#xff0c;有时则遇到的是一些无良企业单位&#xff0c;究竟如何把握忍耐的限度&#xff0c;才合格当一个能经受压力的员工&#xff0c;才能避免对无良单位的一味隐忍! 压力面试是指有意制造紧张&#xff0c;以了解求…...

大数据----31.hbase安装启动

二.Hbase安装 先前安装&#xff1a; Zookeeper 正常部署 首先保证 Zookeeper 集群的正常部署&#xff0c;并启动之。 三台机器都执行&#xff1a;zkServer.sh startHadoop 正常部署 Hadoop 集群的正常部署并启动。 主节点上进行 &#xff1a;start-all.sh 1.HBase 的获取 一定…...

ChatGPT Plus重新开启订阅

12月14日凌晨&#xff0c;OpenAI首席执行官Sam Altman在社交平台宣布&#xff0c;终于找到了更多的GPU算力&#xff0c;重新开启订阅ChatGPT Plus。 上个月15日&#xff0c;OpenAI就因为算力不足&#xff0c;以及用户激增等原因暂停了ChatGPT Plus订阅。 Sam表示&#xff0c;在…...

C#科学绘图之scottPlot绘制多个图像

文章目录 示例移除图像图例信号图 scott系列&#xff1a;绘图初步 示例 从名字就能看出&#xff0c;ScottPlot的绘图函数AddScatter的作用是为图窗添加数据点&#xff0c;换言之&#xff0c;每调用一次AddScatter&#xff0c;就可以在图窗中添加一组图像。下面添加两个按钮&a…...

二百一十五、Flume——Flume拓扑结构之复制和多路复用的开发案例(亲测,附截图)

一、目的 对于Flume的复制和多路复用拓扑结构&#xff0c;进行一个小的开发测试 二、复制和多路复用拓扑结构 &#xff08;一&#xff09;结构含义 Flume 支持将事件流向一个或者多个目的地。 &#xff08;二&#xff09;结构特征 这种模式可以将相同数据复制到多个channe…...

Leetcode—2962.统计最大元素出现至少 K 次的子数组【中等】

2023每日刷题&#xff08;五十六&#xff09; Leetcode—2962.统计最大元素出现至少 K 次的子数组 滑动窗口算法思想 参考的灵神思路 实现代码 class Solution { public:long long countSubarrays(vector<int>& nums, int k) {int n nums.size();long long ans…...

MapReduce模拟统计每日车流量-解决方案

MapReduce模拟统计每日车流量-解决方案 1.Map阶段&#xff1a;将原始数据分割成若干个小块&#xff0c;每个小块由一个Map任务处理。Map任务将小块中的每个数据项映射成为一个键值对&#xff0c;其中键为时间戳&#xff0c;值为车流量。2.Shuffle阶段&#xff1a;将Map任务输出…...

【深度学习】强化学习(二)马尔可夫决策过程

文章目录 一、强化学习问题1、交互的对象2、强化学习的基本要素3、策略&#xff08;Policy&#xff09;4、马尔可夫决策过程1. 基本元素2. 交互过程的表示3. 马尔可夫过程&#xff08;Markov Process&#xff09;4. 马尔可夫决策过程&#xff08;MDP&#xff09;5. 轨迹的概率计…...

Vue.js 使用基础知识

Vue.js 是一款用于构建用户界面的渐进式框架&#xff0c;它专注于视图层。Vue.js 不同于传统的 JavaScript 框架&#xff0c;它采用了组件化的开发方式&#xff0c;使得开发者可以更加高效和灵活地构建交互式的 Web 应用程序。 目录 什么是 Vue.js安装 Vue.jsVue 实例模板语法插…...

Linux---计划任务

本章主要介绍如何创建计划任务 使用 at 创建计划任务使用 crontab 创建计划任务 有时需要在某个指定的时间执行一个操作&#xff0c;此时就要使用计划任务了。计划任务有两种&#xff1a; 一个是at计划任务&#xff0c;另一个是 crontab计划任务。 下面我们分别来看这两种计划…...

.NET微信网页开发之通过UnionID机制解决多应用用户帐号统一问题

背景 随着公司微信相关业务场景的不断拓展&#xff0c;从最初的一个微信移动应用、然后发展成微信公众号应用、然后又有了微信小程序应用。但是随着应用的拓展&#xff0c;如何保证相同用户的微信用户在不同应用中登录的同一个账号呢&#xff1f;今天的主题就来了.NET微信网页…...

【docker】docker入门与安装

Docker 一、入门 Docker的主要目标是&#xff1a;Build, Ship and Run Any App, Anywhere&#xff0c;也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理&#xff0c;使用户的APP及其运行环境能做到一次镜像,处处运行。 Docker运行速度快的原因 Docker有比虚拟…...

视觉学习笔记12——百度飞浆框架的PaddleOCR 安装、标注、训练以及测试

系列文章目录 虚拟环境部署 参考博客1 参考博客2 参考博客3 参考博客4 文章目录 系列文章目录一、简单介绍1.OCR介绍2.PaddleOCR介绍 二、安装1.anaconda基础环境1&#xff09;anaconda的基本操作2&#xff09;搭建飞浆的基础环境 2.安装paddlepaddle-gpu版本1&#xff09;安装…...

深入分析ClassLocader工作机制

文章目录 一、ClassLoader简介1. 概念2. ClassLoader类结构分析 二、ClassLoader的双亲委派机制三、Class文件的加载流程1. 简介2. 加载字节码到内存3. 验证与解析4. 初始化Class对象 四、常见加载类错误分析1. ClassNotFoundException2. NoClassDefFoundError3. UnsatisfiledL…...

算法通关村第十二关—字符串转换(青铜)

一、转换成小写字母 LeetCode709.给你一个字符串s&#xff0c;将该字符串中的大写字母转换成相同的小写字母&#xff0c;返回新的字符串。 示例1&#xff1a; 输入&#xff1a;s"Hello" 输出&#xff1a;"hello" 示例2&#xff1a; 输入&#xff1a;s&qu…...

C#基础与进阶扩展合集-基础篇(持续更新)

目录 本文分两篇&#xff0c;进阶篇点击&#xff1a;C#基础与进阶扩展合集-进阶篇 一、基础入门 Ⅰ 关键字 Ⅱ 特性 Ⅲ 常见异常 Ⅳ 基础扩展 1、哈希表 2、扩展方法 3、自定义集合与索引器 4、迭代器与分部类 5、yield return 6、注册表 7、不安全代码 8、方法…...

ReactJs笔记摘录

文章目录 前言目录结构组件动态组件高阶组件 Hook函数useStateuseEffectuseContextuseReduceruseCallbackuseMemo JSX语法根元素与斜杠使用变量推荐使用className替代class属性写法三元表达式 vs &&antd和tailwindcss 组件通信父传子&#xff1a;props和自定义函数事件…...

2023 re:Invent使用 PartyRock 和 Amazon Bedrock 安全高效构建 AI 应用程序

前言 本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 “Your Data, Your AI, Your Future.&#xff08;你的数据&#xff0c;你的AI&…...

Redux-Thunk单元测试终极指南:如何高效Mock异步操作

Redux-Thunk单元测试终极指南&#xff1a;如何高效Mock异步操作 【免费下载链接】redux-thunk reduxjs/redux-thunk: Redux-Thunk 是一个用于 Redux 的中间件&#xff0c;可以用于处理异步操作和副作用&#xff0c;支持多种异步操作和副作用&#xff0c;如 AJAX&#xff0c;Web…...

nli-distilroberta-base零基础上手:非算法工程师也能部署的逻辑推理服务

nli-distilroberta-base零基础上手&#xff1a;非算法工程师也能部署的逻辑推理服务 1. 项目介绍 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)服务&#xff0c;专门为没有算法背景的开发者设计。它能帮你快速判断两个句子之间的逻辑关系&#xff…...

ubuntu20.04设置开机自动登录适用与GNOME桌面环境

默认arm版本ubuntu20.04未安装nano编辑器&#xff0c;so我们要安装一下&#xff0c; sudo apt update && sudo apt install nano设置方法&#xff1a; sudo nano /etc/gdm3/custom.conf添加或修改&#xff0c;用户名区分大小写。 AutomaticLoginEnableTrue AutomaticLo…...

重磅|微软打响第一枪:爆改HR体系,让组织像AI一样思考

微软打响第一枪&#xff1a;爆改HR体系&#xff0c;让组织像AI一样思考3月25日晚&#xff0c;一封来自微软首席人力资源官&#xff08;CPO&#xff09;Amy Coleman 的内部备忘录&#xff0c;把微软庞大的HR架构推倒重来。 这不仅宣告了几位见证微软文化转型期的资深高管&#x…...

藏在滴滴里的AI神器,轻松叫到“梦中情车”

【潮汐商业评论/文】在一线城市上班的00后小杨是个重度打车用户&#xff0c;从她滴滴会员常年v8就可见对打车的依赖程度。她住在城市远郊&#xff0c;工作日的通勤或是周末的聚会&#xff0c;她总习惯提前叫好车&#xff0c;对于车型她也有着自己的“小偏好”&#xff0c;总结就…...

VideoAgentTrek-ScreenFilter高级配置:针对特定内容的过滤规则自定义教程

VideoAgentTrek-ScreenFilter高级配置&#xff1a;针对特定内容的过滤规则自定义教程 你是不是在用VideoAgentTrek-ScreenFilter处理视频时&#xff0c;发现有些内容它没过滤掉&#xff0c;或者有些不该过滤的却被误伤了&#xff1f;比如&#xff0c;你想屏蔽掉视频里某个特定…...

数据治理平台选型,真正应该看哪几件事

上个月&#xff0c;一位在某制造业集团做数据架构的朋友跟我吐槽&#xff1a;“我们花了半年时间选型&#xff0c;最后上线的产品&#xff0c;管元数据的归元数据&#xff0c;管质量的归质量&#xff0c;两个系统之间打不通&#xff0c;数据血缘断在半路上。现在每次出了数据问…...

STM32项目实战:AHT20温湿度传感器PCB设计全流程(附3D模型技巧)

STM32项目实战&#xff1a;AHT20温湿度传感器PCB设计全流程&#xff08;附3D模型技巧&#xff09; 在物联网设备开发中&#xff0c;温湿度传感器的集成往往是硬件设计的第一步。AHT20作为国产高精度数字温湿度传感器&#xff0c;凭借其I2C接口、20位ADC和微型封装&#xff0c;正…...

终极指南:如何用 tf-quant-finance 实现 Hull-White 模型的百慕大式互换权定价

终极指南&#xff1a;如何用 tf-quant-finance 实现 Hull-White 模型的百慕大式互换权定价 【免费下载链接】tf-quant-finance High-performance TensorFlow library for quantitative finance. 项目地址: https://gitcode.com/gh_mirrors/tf/tf-quant-finance 在量化金…...

如何通过Superalgos教育模块快速掌握算法交易:新手入门完整指南

如何通过Superalgos教育模块快速掌握算法交易&#xff1a;新手入门完整指南 【免费下载链接】Superalgos Superalgos/Superalgos: 是一个开源的分布式社交网络分析和数据挖掘平台。适合对大数据分析、机器学习、区块链以及分布式系统有兴趣的开发者。 项目地址: https://gitc…...