1.Element的table表高度自适应vue3+js写法

news2024/10/5 17:16:21

解决方法

在页面table上添加id,动态计算每页table的最大高度 ,将高度保存在store中,每次切换路由时进行计算。

文章目录

  • 解决方法
  • 前言
  • 一、页面table使用
  • 二、store状态库
    • 1.引入库
  • 效果

前言

提示:状态管理使用的是pinia,用法参考简单学习pinia

  1. 项目目录
    在这里插入图片描述

一、页面table使用

  1. 添加:max-height,和id
<el-table :max-height="tableHeightStore.height" id="elTableId" >
      <el-table-column type="selection" width="30" align="center" />
      <el-table-column label="标题" fixed align="center" prop="title" width="180" />
</el-table>
  1. js部分,引入高度tableHeightStore.height,计算高度方法useTableHeightStore().setTableHeight()
<script setup name="Activity">
	import useTableHeightStore from '@/store/modules/table'
	const tableHeightStore = useTableHeightStore()
	onActivated(() => {
	  useTableHeightStore().setTableHeight()
	})
	onMounted(() => {
	  useTableHeightStore().setTableHeight()
	})
</script>

二、store状态库

1.引入库

代码如下(table.js):

const useTableHeightStore = defineStore(
    'table-height',
    {
      state: () => ({
        height: 500,//默认高度
    }),
    getters:{},
    actions:{
      setHeight(height) {
        this.height=height//高度赋值
      },
      setTableHeight() {
        //计算高度:窗口高度-表格距离顶部距离-固定高度(底部页码高度)
        this.height= window.innerHeight -document.getElementById("elTableId").getBoundingClientRect().top - 52;
        //问题:在浏览器窗口缩放90%时,table表的滚动条会消失(max-height丢失),解决:操作dom添加
        document.querySelector('#elTableId .el-scrollbar__wrap').style.maxHeight = this.height - 40 + "px"
        console.log("路由切换table高度刷新",this.height);
        window.onresize = () => {
          console.log("-----","防抖");
          debounce(tableHeightFun, 200); //防抖
        };
        let that=this
        function tableHeightFun() {
          //页面没有table的id时,不执行
          if(document.getElementById('elTableId')==null)return
          //问题:在路由切换后,窗口高度变高,table表的max-height不能变大。解决:先赋值变小,再变大。
          that.height = window.innerHeight - document.getElementById('elTableId').getBoundingClientRect().top - 52 - 1;
          document.querySelector('#elTableId .el-scrollbar__wrap').style.maxHeight = (that.height - 40 - 1) + "px"
          setTimeout(() => {
            that.height=  window.innerHeight -document.getElementById("elTableId").getBoundingClientRect().top -52;
            document.querySelector('#elTableId .el-scrollbar__wrap').style.maxHeight = (that.height - 40) + "px"
            console.log("--tableHeightFun---",that.height);
          }, 200);
        }
        var timeout = null; //定义一个定时器
        function debounce(fn, wait) {
          if (timeout !== null) clearTimeout(timeout); //清除这个定时器
          timeout = setTimeout(fn, wait);
        }
      }
    }
})

export default useTableHeightStore

// table添加
// :max-height="tableHeightStore.height" id="elTableId"

// 页面引入
// import useTableHeightStore from '@/store/modules/table'
// const tableHeightStore = useTableHeightStore()

// 路由状态-缓存-每次进入页面触发onActivated
// onActivated(() => {
//   useTableHeightStore().setTableHeight()
// })

// 路由状态-不缓存-每次进入页面触发onMounted
// onMounted(() => {
//   useTableHeightStore().setTableHeight()
// })

效果

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

湿气难除?可能是方法用错了!看完这篇,精准祛湿!

立夏过后&#xff0c;你是不是也经常有这样的感觉&#xff1a; 早上睡不醒&#xff0c;越睡越累 脑袋变得沉沉甸甸 手脚像灌了铅&#xff0c;抬不起胳膊&#xff0c;迈不开步子 面对一桌美味也没有胃口 脸上还容易冒油、长痘&#xff0c;浑身有湿漉漉、黏糊糊的感觉&a…

Pikachu上的CSRF以及NSSCTF上的[NISACTF 2022]bingdundun~、 [SWPUCTF 2022 新生赛]xff

目录 一、CSRF CSRF(get) login CSRF(post) CSRF Token 二、CSRF的相关知识点 &#xff08;1&#xff09;什么是CSRF&#xff1f; &#xff08;2&#xff09;工作原理 &#xff08;3&#xff09;CSRF漏洞形成的条件 1、用户要在登录状态&#xff08;即浏览器保存了该…

【python】else与循环的搭配使用

看代码时发现的一种写法&#xff0c;学习一下。 1.for1&#xff09;break2&#xff09;no break 2.while1&#xff09;break2&#xff09;no break 几乎所有语言中&#xff0c;else的常用搭配就是if&#xff0c;而在python中else还可以和循环搭配使用&#xff0c;让代码更加pyt…

胡海建以“限时速运”填补市场空白,让跨越速运顺利突围

作为现代经济体系的重要支柱&#xff0c;物流行业近年来呈现出蓬勃发展的态势。各大物流企业也在竞争中不断向前。其中&#xff0c;跨越速运以“当天达”“次日达”“隔日达”三大跨省时效产品被广为认可。这背后&#xff0c;是跨越速运董事长胡海建对“限时速运”的精准把握。…

开源项目-Docker部署学之思管理系统

开源-Docker部署学之思管理系统 文章目录 开源-Docker部署学之思管理系统资源列表基础环境一、安装Docker二、配置加速器三、查看Docker版本四、Git获取源码五、编辑SQL脚本六、访问管理系统如果访问或者登录的时候出现内部服务错误&#xff0c;评论或私信&#xff0c;我给你解…

vue-pdf-embed 跨域(配置nginx允许跨域)

业务中有个功能需要实现预览pdf&#xff0c;使用了vue-pdf-embed。预览跨域报错。 原nginx路径配置 nginx需要增加跨域处理 增加这一行代码add_header Access-Control-Allow-Origin *; location /files/ {add_header Access-Control-Allow-Origin *;alias C:/uploadFile/; }

B端系统导航有哪些类型?本文告诉你7个常用的。

B端系统相对与C端来说&#xff0c;功能复杂&#xff0c;信息量大&#xff0c;流程负复杂&#xff0c;层级深&#xff0c;这个时候到就显得尤为重要了&#xff0c;直接关乎用户体验&#xff0c;本文大美B端工场带领大家看看这个问题。 一、导航对于B端系统的重要性 导航在B端系…

unity 打包PC安装包中常见文件的功能

目录 前言 一、打包好的文件 二、常用文件 1.文件夹XXX_Data 2.文件夹MonoBleedingEdge 3.文件夹XXX_Data内部 三、文件的应用 1.如果你替换了一个图片 2.如果你新增了或减少了图片和资源 3.场景中有变动 4.resources代码加载的资源改了 5.如果你代码替换了 四、作…

【笔记】【Git】多个dev分支合并到master分支的文件冲突

问题描述 多个dev分支在同步开发,同时发起代码评审,但合入master的时候存在先后顺序,那么后面同文件的操作则会提示“合并有文件冲突”,导致代码无法入库,只能重新提交。 在个人分支中如何解决与master分支差异,从何顺利提交评审合入代码? 参考方案 1、按照下面的流程…

智慧煤矿中的视觉分析:高效的下料口堵塞检测方案

随着工业4.0的推进&#xff0c;智慧煤矿逐渐成为煤炭行业的重要发展方向。智慧煤矿通过引入物联网、大数据、人工智能等技术&#xff0c;实现了矿井作业的自动化和智能化&#xff0c;从而提高了生产效率和安全水平。在智慧煤矿的运营过程中&#xff0c;下料口堵塞是一个常见且严…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 团队派遣(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍓OJ题目截图 📎在线评测链接 团队派遣(100分) 🌍 评测功能需要订阅专栏…

硬核:浏览器发展的四大方向,早把C/S挤到犄角旮旯了。

浏览器是互联网的基础设施&#xff0c;浏览器早不满足于作为上网入口&#xff0c;而是全面进化啦&#xff0c;比如各类应用开始web化&#xff0c;同时浏览器也被分装到桌面应用中去&#xff0c;本文就给大家分享一下浏览器发展的四大方向。 方向一&#xff1a; 传统桌面浏览器…

一文读懂Web Codecs API:浏览器背后的媒体魔术师

引言 ​在早期的Web 网页中&#xff0c;视频播放通常要依靠 Flash 和 Silverlight 等插件来完成&#xff0c;浏览器是不支持直接播放视频的。 随着网络技术的发展&#xff0c;视频这种媒体方式的需求变得普遍&#xff0c;HTML5中&#xff0c;出现了一个新的元素Video&#xf…

VMware Workstation 16安装Redhat6.9

一、创建虚拟机及安装操作系统 1、创建虚拟机 VMware Workstation 16 创建虚拟机 2、安装Redhat6.9 1.挂载系统镜像 2.开启虚拟机&#xff0c;安装操作系统 3.选择【Install or upgrade an existing system】 4.默认&#xff0c;跳过 5.默认&#xff0c;【Next】 5.选择中文…

错误记录:调用原生TvSettings 的 com.android.tv.settings.device.storage.ResetActivity 无法启动

错误现场 起因&#xff1a;第三方 app 调用原生TvSettings 的 com.android.tv.settings.device.storage.ResetActivity &#xff0c;发现无法启动&#xff0c;查看Log有报错。原因&#xff1a;未设置 android:exported“true”错误&#xff1a;ActivityTaskManager: Permissio…

土耳其(小亚细亚)历史上的各个阶段

一个国家的历史书写方式有两种&#xff0c;其一是按本国主体民族的渊源&#xff0c;其二是本国国土内发生的都属于本国史。一般来说&#xff0c;这两种方式相当程度上是重合的&#xff0c;但也有例外&#xff0c;比如本文要讲述的土耳其。 土耳其的国土并不辽阔&#xff0c;其…

文章解读与仿真程序复现思路——电工技术学报EI\CSCD\北大核心《100%新能源场景下考虑频率稳定约束的源网荷储一体化系统储能优化配置》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

遇到Windows无法启动时不要担心,这里有解决办法

序言 如果有一天你打开电脑,Windows拒绝启动,你该怎么办?其实“Windows无法启动”是一种常见症状,原因多种多样,因此你需要进行一些故障排除。 现代版本的Windows更善于从这种情况中自动恢复,而Windows XP遇到此问题时可能会停止在运行的地方,现代版本的Windows将尝试…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第39课-时间通知-按秒刷新

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第39课-时间通知-按秒刷新 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界…

version-manager最好用的SDK版本管理器,v0.6.2发布

项目地址&#xff1a;https://github.com/gvcgo/version-manager 中文文档&#xff1a;https://gvcgo.github.io/vdocs/#/zh-cn/introduction 功能特点&#xff1a; 跨平台&#xff0c;支持Windows&#xff0c;Linux&#xff0c;MacOS支持多种语言和工具&#xff0c;省心受到…