el-table中的某个字段最多显示两行,超出部分显示“...详情”,怎么办

文章目录

  • 背景
    • 需求
    • 需求分析
  • 解决方案
    • 在线体验
    • 灵感来源
    • 我的实现方案
  • 总结

背景

需求

比如,有如下一个表格,请你实现它:
在这里插入图片描述
要求:

  • 最多显示两行
  • 超出部分显示为:“…详情”
  • 点击详情,展开全部内容

说明:本例以vue2版本为例,其他的同理

需求分析

Element UIel-table组件,给我们提供了一个好用的属性show-overflow-tooltip,即:

  • 最多显示一行
  • 超出显示省略号
  • 鼠标悬停时显示全部内容

效果如下:
在这里插入图片描述

但是,我们现在需要显示两行,所以这个属性不符合我们的需求。

解决方案

在线体验

灵感来源

我在其他论坛上看到一篇文章:https://juejin.cn/post/7347221074704777226
他的核心思想是用CSS 滚动驱动动画CSS 样式查询等较新的CSS属性来实现,是比较好的思路,确实也实现了。
但是不适用在el-table中:

  • 新属性不是100%兼容,需要较新的浏览器版本(Chrome 115+);
  • el-table有某些样式影响,所以导致无法实现;

该博主的示例代码如下:
效果如下:
在这里插入图片描述
也有一些其他人的实现思路,有异曲同工之妙,此处不一一细说了。

我的实现方案

思路:既然是在el-table中,那就需要自定义写样式,且表格中有循环,基于上述代码受影响而不生效,所以此处只能用js来辅助了,纯靠CSS是行不通的了。

我的示例代码如下:

<template><el-table :data="tableData"><el-table-column label="URL地址" prop="url" align="center" /><el-table-column label="作废原因" prop="remark" align="center" width="270"><template v-slot="scope"><div class="remark-cell"><div:class="['remark-content', { 'expanded': scope.row.isExpanded }]":ref="`remarkRef_${scope.$index}`":data-index="`remarkRef_${scope.$index}`">{{ scope.row.remark }}</div><spanv-if="scope.row.needExpand"class="expand-btn"@click="toggleExpand(scope.row)">{{ scope.row.isExpanded ? '收起' : '详情' }}</span></div></template></el-table-column></el-table>
</template>
<script>
export default {data() {
tableData: [{id: 1,isExpanded: false,needExpand: false,remark: '汉水东流,都洗尽、髭胡膏血。人尽说、君家飞将,旧时英烈。破敌金城雷过耳,谈兵玉帐冰生颊。想王郎、结髮赋从戎,传遗业。腰间剑,聊弹铗。尊中酒,堪为别。况故人新拥,汉坛旌节。马革裹尸当自誓,蛾眉伐性休重说。但从今、记取楚楼风,庾台月。","translate":"汉水滔滔,向东流去;它冲净了那些满脸长着鬍鬚的敌人嘴上沾着人民的膏血。人们都说:当年你家的飞将军,英勇威列地打击敌人。攻破敌人坚固的城池的时候,迅速勇猛,像迅雷过耳那么快;在玉帐里谈论兵法或者是研究战术的时候,态度激昂兴奋,语言慷慨激烈,两颊都结了冰。回想王郎,你才到结发的年令,就从事戎马生活。'},{id: 2,isExpanded: false,needExpand: false,remark: '111',},{id: 3,isExpanded: false,needExpand: false,remark: '大江东去、浪淘尽、髭胡膏血。人尽说、君家飞将,旧时英烈。破敌金城雷过耳,谈兵玉帐冰生颊。想王郎、结髮赋从戎,传遗业。腰间剑,聊弹铗。尊中酒,堪为别。况故人新拥,汉坛旌节。马革裹尸当自誓,蛾眉伐性休重说。但从今、记取楚楼风,庾台月。","translate":"汉水滔滔,向东流去;它冲净了那些满脸长着鬍鬚的敌人嘴上沾着人民的膏血。人们都说:当年你家的飞将军,英勇威列地打击敌人。攻破敌人坚固的城池的时候,迅速勇猛,像迅雷过耳那么快;在玉帐里谈论兵法或者是研究战术的时候,态度激昂兴奋,语言慷慨激烈,两颊都结了冰。回想王郎,你才到结发的年令,就从事戎马生活。'},],},methods: {// 切换展开状态toggleExpand(row) {this.$set(row, 'isExpanded', !row.isExpanded)},// 检查是否需要展开按钮checkNeedExpand() {this.$nextTick(() => {this.tableData.forEach((row, index) => {const refKey = `remarkRef_${index}`const el = this.$refs[refKey]if (el && el.scrollHeight > el.clientHeight) {this.$set(row, 'needExpand', true)} else {this.$set(row, 'needExpand', false)}})})}}
}
</script>
<style lang="scss" scoped>
.remark-cell {position: relative;width: 100%;padding-right: 8px;
}.remark-content {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;word-break: break-all;line-height: 1.5;
}.remark-content.expanded {-webkit-line-clamp: unset;
}.expand-btn {color: #409EFF;cursor: pointer;margin-left: 4px;position: absolute;right: -10px;bottom: -3px;
}.expand-btn:hover {opacity: 0.8;
}
</style>

我的效果图如下:
在这里插入图片描述

总结

实现的不是很完美,但是也达到了它的效果,大家有啥好方法吗,可以评论一下。

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

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

相关文章

如何获取sql数据中时间的月份、年份(类型为date)

可用自带的函数month来实现 如&#xff1a; 创建表及插入数据&#xff1a; create table test (id int,begindate datetime) insert into test values (1,2015-01-01) insert into test values (2,2015-02-01) 执行sql语句,获取月份&#xff1a; select MONTH(begindate)…

数据库系统概论的第六版与第五版的区别,附pdf

我用夸克网盘分享了「数据库系统概论第五六版资源」&#xff0c;点击链接即可保存。 链接&#xff1a;https://pan.quark.cn/s/21a278378dee 第6版教材修订的主要内容 为了保持科学性、先进性和实用性&#xff0c;在第5版教材基础上对全书内容进行了修改、更新和充实。 在科…

告别手动操作!用Ansible user模块高效管理 Linux账户

在企业运维环境中&#xff0c;服务器的用户管理是一项基础但非常重要的任务。比如&#xff0c;当有新员工加入时&#xff0c;我们需要在多台服务器上为他们创建账户并分配合适的权限。而当员工离职或岗位发生变化时&#xff0c;我们也需要迅速禁用或删除他们的账户&#xff0c;…

区块链项目孵化与包装设计:从概念到市场的全流程指南

区块链技术的快速发展催生了大量创新项目&#xff0c;但如何将一个区块链项目从概念孵化成市场认可的产品&#xff0c;是许多团队面临的挑战。本文将从孵化策略、包装设计和市场落地三个维度&#xff0c;为你解析区块链项目成功的关键步骤。 一、区块链项目孵化的核心要素 明确…

51单片机 02 独立按键

一、独立按键控制LED亮灭 轻触按键&#xff1a;相当于是一种电子开关&#xff0c;按下时开关接通&#xff0c;松开时开关断开&#xff0c;实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。 #include <STC89C5xRC.H> void main() { // P20xFE;while(1){…

免费windows pdf编辑工具

Epdf&#xff08;完全免费&#xff09; 作者&#xff1a;不染心 时间&#xff1a;2025/2/6 Github: https://github.com/dog-tired/Epdf Epdf Epdf 是一款使用 Rust 编写的 PDF 编辑器&#xff0c;目前仍在开发中。它提供了一系列实用的命令行选项&#xff0c;方便用户对 PDF …

【配置环境】VS Code中JavaScript环境搭建

一&#xff0c;环境 Windows 11 家庭中文版&#xff0c;64 位操作系统, 基于 x64 的处理器VS Code 版本: 1.83.1 (user setup)Node.js 版本&#xff1a;20.9.0 二&#xff0c;为什么搭建JavaScript环境 因为在看《重构改善既有代码的设计第2版》的时候&#xff0c;书中的代码展…

结构体排序 C++ 蓝桥杯

成绩排序 #include<iostream> #include<algorithm> using namespace std; struct stu {string name;//名字int grade;//成绩 }; stu a[30]; bool cmp(stu l, stu r) {if (l.grade ! r.grade) return l.grade > r.grade;return l.name < r.name; } int main()…

低代码提升交付效率的公式计算

低&#xff08;无&#xff09;代码平台&#xff08;后统称“低代码”&#xff09;能够提升数字化应用建设、交付效率&#xff0c;已经成为IT从业人员的共识。目前&#xff0c;大部分CIO/CDO都能清晰定位和认知低代码的特点和作用。但仍然有人认为&#xff0c;使用了低代码工具软…

【漫画机器学习】083.安斯库姆四重奏(Anscombe‘s Quartet)

安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09; 1. 什么是安斯库姆四重奏&#xff1f; 安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09;是一组由统计学家弗朗西斯安斯库姆&#xff08;Francis Anscombe&#xff09; 在 1973 年 提出的 四组数据集。它们…

【PDF多区域识别】如何批量PDF指定多个区域识别改名,基于Windows自带的UWP的文字识别实现方案

海关在对进口货物进行查验时,需要核对报关单上的各项信息。对报关单 PDF 批量指定区域识别改名后,海关工作人员可以更高效地从文件名中获取关键信息,如货物来源地、申报价值等。例如文件名 “[原产国]_[申报价值].pdf”,有助于海关快速筛选重点查验对象,提高查验效率和监管…

C基础寒假练习(6)

一、终端输入行数&#xff0c;打印倒金字塔 #include <stdio.h> int main() {int rows;printf("请输入倒金字塔的行数: ");scanf("%d", &rows);for (int i rows; i > 0; i--) {// 打印空格for (int j 0; j < rows - i; j) {printf(&qu…

使用 CSS 实现透明效果

在 CSS 中&#xff0c;实现透明效果有几种方法&#xff0c;具体使用哪种方法取决于具体需求。以下是一些常见的方法&#xff1a; 使用 opacity 属性&#xff1a; opacity 属性可以设置整个元素的透明度&#xff0c;包括其所有的子元素。 .transparent { opacity: 0.5; /* 0 表…

解锁反序列化漏洞:从原理到防护的安全指南

目录 前言 一、什么是反序列化 二、反序列化漏洞原理 三、反序列化漏洞的危害 &#xff08;一&#xff09;任意代码执行 &#xff08;二&#xff09;权限提升 &#xff08;三&#xff09;数据泄露与篡改 四、常见的反序列化漏洞场景 &#xff08;一&#xff09;PHP 反…

UE虚幻引擎No Google Play Store Key:No OBB found报错如何处理

UE虚幻引擎No Google Play Store Key&#xff1a;No OBB found报错如何处理&#xff1f; 问题描述&#xff1a; UE成功打包APK并安装过后&#xff0c;启动应用时提示&#xff1a; No Google Play Store KeyNo OBB found and no store key to try to download. Please setone …

Text2Sql:开启自然语言与数据库交互新时代(3030)

一、Text2Sql 简介 在当今数字化时代&#xff0c;数据处理和分析的需求日益增长。对于众多非技术专业人员而言&#xff0c;数据库操作的复杂性常常成为他们获取所需信息的障碍。而 Text2Sql 技术的出现&#xff0c;为这一问题提供了有效的解决方案。 Text2Sql&#xff0c;即文…

八大排序算法细讲

目录 排序 概念 运用 常见排序算法 插入排序 直接插入排序 思想&#xff1a; 步骤&#xff08;排升序&#xff09;: 代码部分&#xff1a; 时间复杂度&#xff1a; 希尔排序 思路 步骤 gap的取法 代码部分&#xff1a; 时间复杂度&#xff1a; 选择排序 直接选…

基于MODIS/Landsat/Sentinel/国产卫星遥感数据与DSSAT作物模型同化的作物产量估算

基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具&#xff0c;可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系&#xff0c;为不同条件下作物生长发育及产量预测、栽培管理、环境评价以及未来气候变化评估等提供了…

【容器技术01】使用 busybox 构建 Mini Linux FS

使用 busybox 构建 Mini Linux FS 构建目标 在 Linux 文件系统下构建一个 Mini 的文件系统&#xff0c;构建目标如下&#xff1a; minilinux ├── bin │ ├── ls │ ├── top │ ├── ps │ ├── sh │ └── … ├── dev ├── etc │ ├── g…

排序算法与查找算法

1.十大经典排序算法 我们希望数据以一种有序的形式组织起来&#xff0c;无序的数据我们要尽量将其变得有序 一般说来有10种比较经典的排序算法 简单记忆为Miss D----D小姐 时间复杂度 &#xff1a;红色<绿色<蓝色 空间复杂度&#xff1a;圆越大越占空间 稳定性&…