首页 > 其他分享 >先获取行高和文本的高度,然后通过js动态修改样式实现文本超出一行后显示省略号,这样就可以获得哪些文本超出了一行,哪些文本没有超出一行

先获取行高和文本的高度,然后通过js动态修改样式实现文本超出一行后显示省略号,这样就可以获得哪些文本超出了一行,哪些文本没有超出一行

时间:2024-06-12 15:33:37浏览次数:15  
标签:text value height let 一行 超出 lineHeight 文本 ref

<template>
	<div>
		<el-tooltip
			class="box-item"
			effect="dark"
			:content="scope.row[prop]"
			placement="top-start"
			append-to=".m-table"
			:teleported="true"
			:disabled="isDisabled"
		>
			<div ref="text" :style="{ ...textStyle }" class="column-tooltip-text">
				{{ scope.row[prop] }}
			</div>
		</el-tooltip>
	</div>
</template>

<script lang="ts" setup>
import { onMounted, ref, nextTick } from "vue";

let props = defineProps(["label", "prop", "width", "align", "fixed", "scope"]);

let textStyle = ref();
let isDisabled = ref(false);
const text = ref(null);

const getStyle = (type = "init") => {
	// @ts-ignore
	let lineHeight = getComputedStyle(text.value).lineHeight.replace("px", "") - 0 || 23;
	// @ts-ignore
	let height = getComputedStyle(text.value).height.replace("px", "") - 0;
	// console.log(lineHeight, height, props.scope.row[props.prop]);
	if (type === "init") {
		if (height > lineHeight) {
			isDisabled.value = false;
			textStyle.value = {
				height: `${lineHeight}px`,
				overflow: "hidden",
				textOverflow: "ellipsis",
				display: "-webkit-box",
				webkitLineClamp: 1,
				webkitBoxOrient: "vertical",
				cursor: "pointer"
			};
		} else {
			isDisabled.value = true;
			textStyle.value = {
				cursor: "text"
			};
		}
	} else if (type === "update") {
		if (height > lineHeight) {
			isDisabled.value = false;
			textStyle.value = {
				height: `${lineHeight}px`,
				overflow: "hidden",
				textOverflow: "ellipsis",
				display: "-webkit-box",
				webkitLineClamp: 1,
				webkitBoxOrient: "vertical",
				cursor: "pointer"
			};
		}
	}
};

onMounted(() => {
	getStyle("init");
	nextTick(() => {
		setTimeout(() => {
			getStyle("update");
		}, 1000);
	});
});
</script>

<style>
.m-table .column-tooltip-text {
	word-break: break-all;
	display: inline-block;
	max-width: 100%;
}
</style>

人工智能学习网站

https://chat.xutongbao.top

标签:text,value,height,let,一行,超出,lineHeight,文本,ref
From: https://blog.csdn.net/xutongbao/article/details/139627809

相关文章

  • xpath使用contains文本定位不到元素的原因及解决方法
    某些情况下,前端开发可能出现如下的代码<uni-viewdata-v-fc36b70f=""class="letter_city_item">"波特兰;"<spandata-v-fc36b70f=""class="gray">PDX</span></uni-view><uni-viewdata-v-fc36b70f=&quo......
  • 学会python——文本分词(python实例一)
    目录1、认识Python2、环境与工具2.1python环境2.2pycharm编译3、对文本进行分词3.1代码构思3.2代码示例3.3运行结果4、总结1、认识PythonPython是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他......
  • dynamics 365 online仪表板提示:超出最大记录限制。请减少记录数量
     1、Dynamics365online的仪表板确实有数量限制,当记录条数超过5万的时候,就会提示:超出最大记录限制。请减少记录数量https://learn.microsoft.com/zh-cn/power-apps/maker/model-driven-apps/create-edit-system-charthttps://learn.microsoft.com/zh-cn/power-apps/maker/mod......
  • 保姆级2.0简易文本编辑器Python
    1.设计内容1.1问题描述 简易文本编辑器是利用计算机进行文字加工的基本软件工具,实现对文本文件新建、打开、保存、另存、查找、替换文本、插入、删除、撤销和重做等基本操作。在文本编辑区域,使用ScrolledText小部件实现,支持文本的滚动和编辑,同时允许用户在文本编辑区域中垂......
  • OpenCV与AI深度学习 | 实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)
    本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。原文链接:实战|OpenCV实现扫描文本矫正应用与实现详解(附源码)1导 读    本文主要介绍使用OpenCV对扫描文本矫正的应用实例及详细实现步骤。    2背景介绍  在使用打印机或扫描仪......
  • 如何通过javascript自动增加markdown h1的文本内容?
    背景希望美化博客园博客,至少不希望文本那么密集地显示,而且想自动在headline插入表情符号,自动进行目录和文本缩进等等。问题如何通过javascript自动增加markdownh1的文本内容?方案在html中增加如下js脚本即可。document.addEventListener("DOMContentLoaded",function(){......
  • ChatTTS 开源文本转语音模型本地部署、API使用和搭建WebUI界面(建议收藏)
    ChatTTS(ChatTextToSpeech)是专为对话场景设计的文本生成语音(TTS)模型,特别适用于大型语言模型(LLM)助手的对话任务,以及诸如对话式音频和视频介绍等应用。它支持中文和英文,还可以穿插笑声、说话间的停顿、以及语气词等,听起来很真实自然,在语音合成中表现出高质量和自然度(ChatTTS团......
  • Linux -- 简单的文本处理
    提示:制作不易,可以点个收藏和关注哦。前言 这一节我们将介绍这几个命令 tr(注意不是tar),col,join,paste。实际这一节是上一节关于能实现管道操作的命令的延续,所以我们依然将结合管道来熟悉这些文本处理命令的使用。提示:以下是本篇文章正文内容,下面案例可供参考.一、tr命......
  • kettle从入门到精通 第六十六课 ETL之kettle kettle阻塞教程,轻松获取最后一行数据,so e
    场景:ETL沟通交流群内有小伙伴反馈,如何在同步一批数据完成之后记录下同步结果呢?或者是调用后续步骤、存储过程、三方接口等。解决:使用步骤Blockingstep进行阻塞处理即可。1、下面的demo演示从表t1同步数据至表t2(t1表中有三条数据,t2为空表,两个表表结构相同),然后数据同步完毕之后进......
  • Python 潮流周刊#54:ChatTTS 强大的文本生成语音模型
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期周刊分享了12篇文章,12个开源项目,3则音视频,全文2100字。以下是本期......