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

相关文章

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后

CSS3 布局样式及其应用举例

《CSS3布局样式及其应用举例》CSS3的布局特性为前端开发者提供了无限可能,无论是Flexbox的一维布局还是Grid的二维布局,它们都能够帮助开发者以更清晰、简洁的方式实现复杂的网页布局,本文给... 目录深入探讨 css3 布局样式及其应用引言一、CSS布局的历史与发展1.1 早期布局的局限性1.2

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI