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

vue3自适应高度超出折叠功能

1. 需求

常有场景说看到内容如果出现多余一行或几行就出现折叠按钮,没有多就不用折现折叠按钮,点击折叠按钮可以展开或收起折叠内容。

2. 代码

<div class="tgd-box-cont1"><div :class="['tgd-box-cont1-left', isExpanded ? 'tgd-height-auto' : '']"ref="leftContent">...需要折叠的内容</div><div class="tgd-box-cont1-right"><el-buttonv-if="showToggle"@click="toggleExpand"size="mini"type=""class="tgd-box-btn1"link><span>{{ !isExpanded ? '展开' : '收起' }}</span><el-icon><CaretBottom v-if="!isExpanded" /><CaretTop v-else /></el-icon></el-button></div>
</div>
<script setup lang="ts">
import { ref, reactive, computed, onMounted, onUnmounted, nextTick } from 'vue'const leftContent = ref(null)
const isExpanded = ref(false)
const showToggle = ref(false)function checkOverflow() {nextTick(() => {if (leftContent.value.scrollHeight > leftContent.value.clientHeight) {showToggle.value = true}})
}function toggleExpand() {isExpanded.value = !isExpanded.value
}// 当组件挂载后添加resize事件监听器
onMounted(() => {window.addEventListener('resize', handleResize)checkOverflow()
})// 当组件卸载前移除resize事件监听器,防止内存泄漏
onUnmounted(() => {window.removeEventListener('resize', handleResize)
})
</script>
<style lang="less" scoped>
.tgd-box-cont1 {padding-top: 16px;display: flex;align-items: stretch;justify-content: space-between;
}
.tgd-box-cont1-left {flex: 1;overflow: hidden;transition-duration: 0.5s;height: 73px;
}
.tgd-height-auto {height: auto;
}
.tgd-box-cont1-right {flex-basis: 119px;flex-shrink: 0;padding-top: 23px;text-align: right;.tgd-box-btn1 {padding: 0;font-size: 12px;width: auto;min-width: auto;& > span {margin-right: 8px;}}
}
</style>

3. 效果

在这里插入图片描述

求关注
在这里插入图片描述
http://www.xdnf.cn/news/7426.html

相关文章:

  • 【DNS寻址之旅】从敲下网址到网页呈现:DNS的“第一次亲密接触”**
  • 聊聊更新中断和更新事件那些事儿
  • 【C++】不推荐使用的std::allocator<void>
  • 对于程序员的个人理解
  • 机器学习第十七讲:PCA → 把100维数据压缩成3D视图仍保持主要特征
  • 【机器人】复现 3D-Mem 具身探索和推理 | 3D场景记忆 CVPR 2025
  • 【STM32】ST-Link V2.1制作
  • 软件工程第六章-详细设计
  • Git 使用全攻略:从入门到精通
  • 牛客网NC209794:使徒袭来
  • 2025年PMP 学习二十一 14章 项目立项管理
  • 系统安全及应用深度笔记
  • (已解决:基于WSL2技术)Windows11家庭中文版(win11家庭版)如何配置和使用Docker Desktop
  • Java大数据机器学习模型在金融衍生品风险建模中的创新实践
  • 【Unity网络编程知识】Unity的 WWW相关类学习
  • 【免费下载】2025年全国地铁路线及站点矢量数据
  • 关于IntegerCache.cache的介绍
  • 【密码学——基础理论与应用】李子臣编著 第十二章 SM3密码杂凑算法 课后习题
  • Ubuntu 远程桌面配置指南
  • 数据要素及征信公司数据要素实践
  • 探究:霍尔开关,在电动晾衣架丝滑升降与卷发器智能温控中的关键作用
  • 已解决——如何让网站实现HTTPS访问?
  • 前端页面 JavaScript数据交互
  • 鸿蒙 系统-安全-程序访问控制-应用权限管控
  • ES6详解
  • Linux中的DNS的安装与配置
  • flow-两种SharingStarted策略的区别示例
  • kotlin Flow的技术范畴
  • 解决软件连接RabbitMQ突发System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接异常
  • RabbitMQ-高级