element table表头固定悬浮,element table表头黏性布局,element table表头悬浮窗口

2024-02-24 06:59

本文主要是介绍element table表头固定悬浮,element table表头黏性布局,element table表头悬浮窗口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

element table表头固定悬浮,element table表头黏性布局,element table表头悬浮窗口

  • 效果图
    • 图一
    • 图二
    • 图三
    • 图四
  • 修改方案
  • 使用方法
  • mixins文件代码
  • 添加公用样式

效果图

图一

在这里插入图片描述

图二

![在这里插入图片描述](https://img-blog.csdnimg.cn/b7230fe9193b426db6204c5c4d35e393.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG9zIHJhaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

图三

![在这里插入图片描述](https://img-blog.csdnimg.cn/f9ec7ac8d2794f55af4fcb7bd09b67a2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATG9zIHJhaW4=,size_20,color_FFFFFF,t_70,g_se,x_16

图四

在这里插入图片描述

修改方案

针对需要table表头黏性布局的页面添加mixins

使用方法

import scroll from '@/views/mixins/scroll'
export default {mixins: [scroll]
}

mixins文件代码

const scorll = {methods: {ishowBottomDiv(bottomDiv, scrollBar, tableBodyDomWrap){if(bottomDiv.getBoundingClientRect().top>document.body.clientHeight){if(scrollBar.style.display === 'none'){scrollBar.style.display = 'block';scrollBar.scrollLeft = tableBodyDomWrap.scrollLeft;}scrollBar.style.display = 'block';} else {scrollBar.style.display = 'none';}}},mounted() {let self = this;let bottomDiv = document.createElement('div');let bar = document.createElement('div');let scrollBar = document.createElement('div');let tableBodyDom = document.querySelector('.el-table__body')let tableBodyDomWrap = document.querySelector('.el-table__body-wrapper')this.$nextTick(() => {let dom = document.querySelector('.el-table')dom.append(bottomDiv);let MutationObserver = window.MutationObserver || window.webkitMutationObserver || window.MozMutationObserver;window.mutationObserver = new MutationObserver(function (mutations) {self.ishowBottomDiv(bottomDiv, scrollBar, tableBodyDomWrap)})window.mutationObserver.observe(dom, {childList: true,subtree: true, // 子节点的变动(新增、删除或者更改)})bar.style.width = tableBodyDom.getBoundingClientRect().width+'px'bar.style.height = '1px'scrollBar.style.width = dom.getBoundingClientRect().width+'px'scrollBar.style.height = '30px'scrollBar.style.overflow = 'auto'scrollBar.style.zIndex = '10000'scrollBar.style.bottom = '0px'scrollBar.style.position = 'fixed'scrollBar.append(bar);dom.append(scrollBar);})window.addEventListener('scroll',() => {let dom = document.querySelector('.el-table')if (!dom) {return}if(scrollBar.style.display === 'block'){tableBodyDomWrap.scrollLeft = scrollBar.scrollLeft;} else {scrollBar.scrollLeft = tableBodyDomWrap.scrollLeft;}self.ishowBottomDiv(bottomDiv, scrollBar, tableBodyDomWrap)let elTable = document.querySelector('.el-table__header-wrapper')let elTableFixed = document.querySelector('.el-table__fixed .el-table__fixed-header-wrapper')let elTableFixedRight = document.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper')let elTableFixedRightHeader = document.querySelector('.el-table__fixed-right  .el-table__header')if (dom.getBoundingClientRect().top < 64) {if (document.querySelector('.zhanweitablehead')) {//} else {let zhanwei = document.createElement('div')zhanwei.className = 'zhanweitablehead'zhanwei.style.width = elTable.getBoundingClientRect().width + 'px'zhanwei.style.height = elTable.getBoundingClientRect().height + 'px'dom.insertBefore(zhanwei, dom.children[0])}if (elTable) {elTable.style.position = 'fixed'elTable.style.zIndex = '1000'elTable.style.top = '64px'elTable.style.left = '256px'elTable.style.width = dom.getBoundingClientRect().width + 'px'elTable.style.overflow = 'hidden'}if (elTableFixed) {elTableFixed.style.position = 'fixed'elTableFixed.style.zIndex = '10000'elTableFixed.style.top = '64px'elTableFixed.style.left = '256px'elTableFixed.style.width = '320px'elTableFixed.style.overflow = 'hidden'}if (elTableFixedRight) {elTableFixedRight.style.width = document.querySelector('.el-table__fixed-right').style.widthelTableFixedRight.style.position = 'fixed'elTableFixedRight.style.zIndex = '10000'elTableFixedRight.style.top = '64px'elTableFixedRight.style.height = '50px'elTableFixedRight.style.right = '36px'elTableFixedRight.style.overflow = 'hidden'elTableFixedRightHeader.style.position = 'absolute'elTableFixedRightHeader.style.right = '0'}} else {if (!dom) {return}if (document.querySelector('.zhanweitablehead')) {document.querySelector('.el-table').removeChild(document.querySelector('.zhanweitablehead'))}if (elTable) elTable.style = {}if (elTableFixed) elTableFixed.style = {}if (elTableFixedRight) elTableFixedRight.style = {}if (elTableFixedRightHeader)elTableFixedRightHeader.style.position = 'initial'}},true)},destroyed() {window.removeEventListener('scroll');window.mutationObserver.disconnect();},
}
export default scorll;

添加公用样式

.is-scrolling-left ~ .el-table__fixed-right,.is-scrolling-middle ~ .el-table__fixed-right {.el-table__fixed-header-wrapper {border-left: 2px solid #d6d6d657;}}.is-scrolling-right ~ .el-table__fixed,.is-scrolling-middle ~ .el-table__fixed {.el-table__fixed-header-wrapper {border-right: 2px solid #d6d6d657;}}

这篇关于element table表头固定悬浮,element table表头黏性布局,element table表头悬浮窗口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/741311

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

Java导出Excel动态表头的示例详解

《Java导出Excel动态表头的示例详解》这篇文章主要为大家详细介绍了Java导出Excel动态表头的相关知识,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录前言一、效果展示二、代码实现1.固定头实体类2.动态头实现3.导出动态头前言本文只记录大致思路以及做法,代码不进

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

java poi实现Excel多级表头导出方式(多级表头,复杂表头)

《javapoi实现Excel多级表头导出方式(多级表头,复杂表头)》文章介绍了使用javapoi库实现Excel多级表头导出的方法,通过主代码、合并单元格、设置表头单元格宽度、填充数据、web下载... 目录Java poi实现Excel多级表头导出(多级表头,复杂表头)上代码1.主代码2.合并单元格3.

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情