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

elementUI Table组件实现表头吸顶效果

需求描述

当 table 内容过多的时候,页面上滑滚动,表头的信息也会随着被遮挡,无法将表头信息和表格内容对应起来,需要进行表头吸顶

开始编码💪

环境:vue2.6+、element UI
step1:el-table__header-wrapper加上样式

//style/sticky-table-header.scss.el-table[is-sticky] {overflow: initial;--sticky-top: 0px;--stick-zIndex: 5;.el-table__header-wrapper{position: sticky;top: var(--sticky-top);z-index: var(--stick-zIndex);}.el-table__fixed, .el-table__fixed-right{overflow: visible;z-index: var(--stick-zIndex);.el-table__fixed-header-wrapper {position: sticky;top: var(--sticky-top);width: 100%;overflow: hidden;z-index: var(--stick-zIndex);}.el-table__fixed-body-wrapper {width: 100%;overflow: hidden;}}.el-table__fixed-right {.el-table__fixed-header-wrapper {display: flex;justify-content: flex-end;}.el-table__fixed-body-wrapper {display: flex;justify-content: flex-end;}}&.el-table--border::after{z-index: var(--stick-zIndex);}
}.el-table__fixed {--box-shadow: 10px 0 10px -10px rgba(0, 0, 0, 0.12);
}.el-table__fixed-right {--box-shadow: -10px 0 10px -10px rgba(0, 0, 0, 0.12);
}.el-table__fixed, .el-table__fixed-right {box-shadow: var(--box-shadow);
}

step2: 注册指令 directives/sticky-header.js

import '@/styles/sticky-table-header.scss'export default {bind(el, binding) {el.setAttribute('is-sticky', true)updateStickyTop(el, binding)},update(el, binding) {updateStickyTop(el, binding)}
}const updateStickyTop = (el, binding) => {const { value, oldValue } = bindingif (value === oldValue) returnconst top = Number(value)if (!isNaN(top)) {el.style.setProperty('--sticky-top', `${top}px`)}
}

step3: main.js 引入

import StickyTableHeader from './directives/sticky-header'
Vue.directive('sticky-table-header', StickyTableHeader)

step4: table.vue

<template><div class="wrapper"><h3>纯CSS表格吸顶</h3><el-radio-group v-model="mode" aria-hidden="true" class="options"><el-radio label="normal">正常模式</el-radio><el-radio label="fixedLeft">固定左边列</el-radio><el-radio label="fixedRight">固定右边列</el-radio><el-radio label="fixedLeftRight">固定左右列</el-radio></el-radio-group><el-tablev-sticky-table-header="0"border:data="tableData"><el-table-column label="日期" prop="date" min-width="150" :fixed="fixedLeft" /><el-table-column label="姓名" prop="name" width="120" /><el-table-column label="省份" prop="province" width="120" /><el-table-column label="市区" prop="city" width="120" /><el-table-column label="地址" prop="address" width="300" /><el-table-column label="邮编" prop="zip" min-width="120" :fixed="fixedRight" /></el-table></div>
</template><script>
export default {name: 'CSSFixedTopTable',components: {},data() {const tableData = new Array(100).fill(0).map((_, index) => {return {date: '2016-05-03',name: '王小虎',province: '上海',city: '普陀区',address: `上海市普陀区金沙江路 ${1 + index}`,zip: 2000001 + index}})return {tableData,mode: 'normal'}},computed: {fixedLeft() {return /left/i.test(this.mode) ? 'left' : null},fixedRight() {return /right/i.test(this.mode) ? 'right' : null}},methods: {}
}
</script><style lang="scss" scoped>
.wrapper {width: 800px;margin: 0 auto;.options {width: 100%;margin: 30px 0;text-align: left;}
}
</style>

❗️❗️❗️父元素不要有 overflow: hidden;会失效

step5: 效果呈现🤩

在这里插入图片描述

相关文章:

elementUI Table组件实现表头吸顶效果

需求描述 当 table 内容过多的时候&#xff0c;页面上滑滚动&#xff0c;表头的信息也会随着被遮挡&#xff0c;无法将表头信息和表格内容对应起来&#xff0c;需要进行表头吸顶 开始编码&#x1f4aa; 环境&#xff1a;vue2.6、element UI step1&#xff1a; 给el-table__h…...

语言模型的价值定位与技术突破:从信息处理到创新认知

标题&#xff1a;语言模型的价值定位与技术突破&#xff1a;从信息处理到创新认知 文章信息摘要&#xff1a; 当前语言模型的核心价值主要体现在信息综合与处理能力上&#xff0c;用户友好的交互界面是其成功关键。在模型计算机制方面&#xff0c;推理能力的实现包括chain-of-…...

微信小程序使用上拉加载onReachBottom。页面拖不动。一直无法触发上拉的事件。

1&#xff0c;可能是原因是你使用了scroll-view的标签&#xff0c;用onReachBottom触发加载事件。这两个是有冲突的。没办法一起使用。如果页面的样式是滚动的是无法去触发页面的onReachBottom的函数的。因此&#xff0c;你使用overflow:auto.来使用页面的某些元素滚动&#xf…...

Spring Boot 快速创建项目

目录 一. 创建项目 ​编辑 二. 项目目录 三. 运行项目 (1) 启动项目 (2) 输出HelloWorld 一. 创建项目 我们以idea专业版为例创建Spring项目: 步骤: (1) File --> New --> Project (2) 配置项目基本信息 (3) 依赖: 需要什么就勾选什么. 我们这里就只勾选一个Spri…...

kafka学习笔记5 PLAIN认证——筑梦之路

在Kafka中&#xff0c;SASL&#xff08;Simple Authentication and Security Layer&#xff09;机制包括三种常见的身份验证方式&#xff1a; SASL/PLAIN认证&#xff1a;含义是简单身份验证和授权层应用程序接口&#xff0c;PLAIN认证是其中一种最简单的用户名、密码认证方式&…...

直驱式风电储能制氢仿真模型matlab/simulink

接着还是以直驱式风电为DG中的研究对象&#xff0c;上篇博客考虑的风电并网惯性的问题&#xff0c;这边博客主要讨论功率消纳的问题。 考虑到风速是随机变化的&#xff0c;导致风电输出功率的波动性和间歇性问题突出&#xff1b;随着其应用规模的不断扩大以及风电在电网中渗透率…...

excel批量提取批注

打开excel ALTF11 ​​​​​​​ ​​​​​​​ 插入代码 Function GetComment(rng As Range) As StringOn Error Resume NextDim commentText As StringcommentText rng.Comment.TextcommentText Replace(commentText, "rina.farriani:", "")GetC…...

高性能PCIE硬件加密卡:满足大数据时代的安全需求

在大数据时代&#xff0c;数据的海量增长和快速流动带来了前所未有的安全挑战。如何确保数据的机密性、完整性和可用性&#xff0c;成为企业和组织必须面对的重要问题。高性能PCIE硬件加密卡作为一种专业的数据安全解决方案&#xff0c;凭借其卓越的性能和安全性&#xff0c;正…...

C语言小项目——通讯录

功能介绍&#xff1a; 1.联系人信息&#xff1a;姓名年龄性别地址电话 2.通讯录中可以存放100个人的信息 3.功能&#xff1a; 1>增加联系人 2>删除指定联系人 3>查找指定联系人的信息 4>修改指定联系人的信息 5显示所有联系人的信息 6>排序&#xff08;名字&…...

uni-app连接EventSource

前言 uniapp默认是不支持event-source&#xff0c;这里是借助renderjs进行SSE连接 正文 引入event-source-polyfill 这里演示的是直接将代码下载到本地进行引入 下载地址 把里面的eventsource.min.js文件放到项目中的static文件夹 项目封装event-source.vue组件 <templ…...

Spring Boot 实战:轻松实现文件上传与下载功能

目录 一、引言 二、Spring Boot 文件上传基础 &#xff08;一&#xff09;依赖引入 &#xff08;二&#xff09;配置文件设置 &#xff08;三&#xff09;文件上传接口编写 &#xff08;一&#xff09;文件类型限制 &#xff08;二&#xff09;文件大小验证 &#xff0…...

火狐浏览器Firefox一些配置

没想到还会开这个…都是Ubuntu的错 一些个人习惯吧 标签页设置 常规-标签页 1.按最近使用顺序切换标签页 2.打开新标签而非新窗口&#xff08;讨厌好多窗口&#xff09; 3.打开新链接不直接切换过去&#xff08;很打断思路诶&#xff09; 4.关闭多个标签页时不向我确认 启动…...

[STM32 HAL库]串口中断编程思路

一、前言 最近在准备蓝桥杯比赛&#xff08;嵌入式赛道&#xff09;&#xff0c;研究了以下串口空闲中断DMA接收不定长的数据&#xff0c;感觉这个方法的接收效率很高&#xff0c;十分好用。方法配置都成功了&#xff0c;但是有一个点需要进行考虑&#xff0c;就是一般我们需要…...

C++入门 详细版

欢迎来到干货小仓库&#xff01;&#xff01; 一分耕耘一分收获&#xff0c;离自己的目标越来越近。 passion&#xff01;passion&#xff01;&#xff01;passion&#xff01;&#xff01;&#xff01; 1.命名空间 由于C语言无法避免名字或者函数重复等问题&#xff0c;当有多…...

MIAOYUN信创云原生项目亮相西部“中试”生态对接活动

近日&#xff0c;以“构建‘中试’生态&#xff0c;赋能科技成果转化”为主题的“科创天府智汇蓉城”西部“中试”生态对接活动在成都高新区菁蓉汇隆重开幕。活动分为成果展览、“中试”生态主场以及成果路演洽谈对接三大板块。在成果展览环节&#xff0c;成都元来云志科技有限…...

网络编程 | UDP组播通信

1、什么是组播 在上一篇博客中&#xff0c;对UDP的广播通信进行了由浅入深的总结梳理&#xff0c;本文继续对UDP的知识体系进行探讨&#xff0c;旨在将UDP的组播通信由浅入深的讲解清楚。 组播是介于单播与广播之间&#xff0c;在一个局域网内&#xff0c;将某些主机添加到组中…...

T-SQL语言的语法

T-SQL深度解析与应用 T-SQL&#xff08;Transact-SQL&#xff09;是微软SQL Server使用的一种扩展SQL&#xff08;结构化查询语言&#xff09;。它不仅支持标准SQL的所有功能&#xff0c;而且增加了许多实用的扩展和特性&#xff0c;使得数据库的操作更加灵活和强大。本文将对…...

Java开发提效秘籍:巧用Apache Commons IO工具库

一、引言 在 Java 开发的广袤领域中&#xff0c;输入输出&#xff08;I/O&#xff09;操作宛如一座桥梁&#xff0c;连接着程序与外部世界&#xff0c;从文件的读取与写入&#xff0c;到网络数据的传输&#xff0c;I/O 操作无处不在&#xff0c;其重要性不言而喻。然而&#xf…...

第1章:Python TDD基础与乘法功能测试

写在前面 这本书是我们老板推荐过的&#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后&#xff0c;我突然思考&#xff0c;对于测试开发工程师来说&#xff0c;什么才更有价值呢&#xff1f;如何让 AI 工具更好地辅助自己写代码&#xff0c;或许…...

web前端1--基础

&#xff08;时隔数月我又来写笔记啦~&#xff09; 1、下载vscode 1、官网下载&#xff1a;Visual Studio Code - Code Editing. Redefined 2、步骤&#xff1a; 1、点击同意 一直下一步 勾一个创建桌面快捷方式 在一直下一步 2、在桌面新建文件夹 拖到vscode图标上 打开v…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...