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

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. 效果

在这里插入图片描述

求关注
在这里插入图片描述

相关文章:

  • 【操作系统面经】持续更新ing
  • FART 主动调用组件设计和源码分析
  • 程序化 SEO 全攻略:如何高效提升网站排名?
  • Linux 文件(2)
  • 电子电路:什么是静态工作点Q点?
  • 【QT】QT6添加现有.c .h文件
  • QT之绘图模块和双缓冲技术
  • CVE-2015-4553 Dedecms远程写文件
  • 光子神经网络加速器编程范式研究:光子矩阵乘法的误差传播模型构建
  • 力扣HOT100之二叉树:199. 二叉树的右视图
  • Fabric初体验(踩坑笔记)
  • 【盈达科技】AICC™系统:重新定义生成式AI时代的内容竞争力
  • 晶圆Map图芯片选择显示示例
  • 在Cursor中启用WebStorm/IntelliJ风格快捷键
  • v解锁健康密码:现代养生新主张
  • Scala:size 和 length 的区别
  • 什么是子网委派?
  • 计算机网络 第三章:运输层(一)
  • 健康生活指南:从日常细节开启养生之旅
  • 并发编程(5)
  • 《中华人民共和国经济史(1949—1978年)》教材出版发行
  • 新华社千笔楼:地方文旅宣传应走出“魔性尬舞”的流量焦虑
  • 上海青少年书法学习园开园:少年以巨笔书写《祖国万岁》
  • 上市公司重大资产重组新规九要点:引入私募“反向挂钩”,压缩审核流程
  • 首次带人形机器人走科技节红毯,傅利叶顾捷:没太多包袱,很多事都能从零开始
  • 梅花奖在上海|湘剧《夫人如见》竞梅,长沙文旅来沪推广