固定表格标题与水平和垂直滚动主体

2024-04-23

目标:

  • 表头和表体的列宽应相同。
  • 表格标题固定在垂直滚动条上。
  • 要在水平滚动上移动的表标题。
  • 标头显示在 HTML 的可滚动部分内。

问题陈述:

  • 表格标题在垂直滚动时未固定。
  • 标题显示在 HTML 的可滚动部分之外(当标题位置固定时)。

我看过很多帖子,但找不到这个特定问题陈述的解决方案。

我创建了两个 JSFiddle 来演示问题陈述:

Fiddle01:解决方案作为单独的模块可以很好地工作。JSFiddle01 https://jsfiddle.net/vishruthjain/Lxz98htp/28/

Fiddle02:解决方案与其他 div 集成时不起作用。JSFiddle02 https://jsfiddle.net/Lxz98htp/60/

任何帮助将非常感激。

$(function() {
var $window = $(window);
var $table = $('table');
var $head = $table.find('thead');
var $body = $table.find('tbody');
var $headTds1 = $head.find('tr').eq(0).find('th');
var $headTds2 = $head.find('tr').eq(1).find('th');
var $bodyTds = $body.find('tr').eq(0).find('td');
var tableWidth = $table.outerWidth();
// console.log("Width:"+tableWidth);
var $tableNew = $('<table/>');
var cl = 0; // colspan total length
var cc = 0; // colspan count

$table.css({ width: tableWidth });
$tableNew
    .attr("class", $table.attr("class"))
    .css({ width: tableWidth });

$head.css({ background: '#fff' });

$.each($headTds1, function(index, value) {
    var $headTd = $(value);
    var colspan = $headTd.attr('colspan') || 0;

    if (colspan) {
        while (colspan) {
            addwidth($($headTds2[cl]), $($bodyTds[index + cl - cc]));
            colspan--
            cl++
        }
        cc++;
    } else {
        addwidth($headTd, $($bodyTds[index + cl - cc]));
    }
});

function addwidth($headTd, $bodyTd) {
    var headTdwidth2 = $headTd.outerWidth();
    var bodyTdwidth2 = $bodyTd.outerWidth();
    var width2 = headTdwidth2 > bodyTdwidth2 ? headTdwidth2 : bodyTdwidth2;

    $bodyTd.css({ 'width': width2 });
    $headTd.css({ 'width': width2 });

    var headTdwidth = $headTd.width();
    var bodyTdwidth = $bodyTd.width();
    var width = headTdwidth > bodyTdwidth ? headTdwidth : bodyTdwidth;
    $bodyTd.html('<div style="width: ' + width + 'px">' + $bodyTd.html() + '</div>');
    $headTd.html('<div style="width: ' + width + 'px">' + $headTd.html() + '</div>');
}

$head.appendTo($tableNew);
$tableNew.insertBefore($table);
// $table.css({ 'margin-top': $tableNew.height() });

$tableNew.css({ position: 'fixed' });

$window.scroll(reLeft);
$window.resize(reLeft);


function reLeft() {
    $tableNew.css({ left: $table.offset().left - $window.scrollLeft() });
}
});

您正在克隆表以修复标头,更好的是您可以直接修复原始表的标头,这将得到相同的结果。

元素与position:fixed更改相对于视口的宽度,这会导致宽度在滚动时发生变化,您可以在此处查看https://jsfiddle.net/chourasiapawankumar/vg7q3tyc/19 https://jsfiddle.net/chourasiapawankumar/vg7q3tyc/19

方法:1

代替position:fixed use relative in th它正在与你的父母合作div其中有min-height:100px.

https://jsfiddle.net/chourasiapawankumar/krw0qpbL/62/ https://jsfiddle.net/chourasiapawankumar/krw0qpbL/62/

方法:2

删除时您可以同时看到水平和垂直滚动条min-height我在下面的小提琴中评论过的父div。

https://jsfiddle.net/chourasiapawankumar/vg7q3tyc/33/ https://jsfiddle.net/chourasiapawankumar/vg7q3tyc/33/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

固定表格标题与水平和垂直滚动主体 的相关文章

  • Redux 中的排队操作

    我目前遇到的情况是我需要连续运行 Redux Actions 我看过各种中间件 比如 redux promise 看起来不错如果您知道触发根操作 由于缺乏更好的术语 时的连续操作是什么 本质上 我想维护一个可以随时添加的操作队列 每个对象在
  • 解码URIComponent抛出错误“URI格式错误”

    As unescape已被弃用 我已选择decodeURIComponent 但它没有按预期工作 decodeURIComponent无法解码以下 URI 组件 Coast 20Guard 20Academy 20to 20hold 20a
  • 使用 CSS 定位文本节点

    我正在研究容器对象的 CSS 我大部分时间都在工作 具体来说 我正在查看测试用例 1 2 和 3 它们都有文本节点 有没有办法像对待任何子元素一样对待文本节点 有什么方法可以调整 CSS 以使文本节点及其兄弟节点正常工作吗 除非有一个 CS
  • 如何访问打字稿中的组件

    我有一个基本的 Angular 应用程序 如下所示 app component html h1 Test Umgebung h1 div div
  • Knockout.js——理解 foreach 和 with

    我一直在阅读 learn knockout js 教程并进行实验 有人可以解释为什么这有效吗 教程 单页应用程序 步骤 2 使用with chosenFolderData and foreach mails table class mail
  • 如何在外部 .js 文件中分离 .vue 组件的方法?

    我的组件留下了许多行代码 因此我决定将这些方法放在一个名为functions js 的单独文件中 我无法调用这些方法 我试过这个 函数 js function sendList function getLists function dele
  • 悬停时连续 CSS 旋转动画,悬停时动画回到 0deg

    我有一个元素 当你将鼠标悬停在它上面时 它会无限旋转 当您将鼠标悬停在外面时 动画就会停止 简单的 webkit keyframes rotate from webkit transform rotate 0deg to webkit tr
  • Javascript,检测触摸设备

    我正在使用此函数来检测设备是否是触摸设备 function is touch device return ontouchstart in window onmsgesturechange in window 从这里得到这个功能 使用 Jav
  • 使用Ajax使用php将记录插入mysql数据库

    如何使用 Ajax 对此代码进行编码 请帮助 我是 Bignner 我已经编写了这段代码 它可以工作 但我想与 ajax 一起使用 因为不想重新加载页面 PHP文件 Code For Making Form And getting Data
  • 如何在闪亮的仪表板侧栏中手动展开子菜单

    我正在尝试手动展开闪亮仪表板侧边栏中的子菜单 这updateTabItems该功能仅适用于普通菜单 不适用于嵌套菜单 这是基本示例 修改自updateTabItems文档 来显示问题 如果我单击 切换选项卡 它会切换菜单 但不会展开具有子菜
  • 计算 DIV 元素的最大/最小高度

    问题 给定一个具有固定高度的 DIV 元素 其中包含未知数量的子元素 这些子元素的大小相对于其高度 计算 DIV 可以调整大小的最大 最小高度 而不违反其子元素的任何最大 最小值元素 Example求 DIV A 的最大 最小高度 Answ
  • 双向数据绑定(Angular)与单向数据流(React/Flux)

    上周 我一直在试图弄清楚如何双向数据绑定 Angular https docs angularjs org guide databinding and 单向数据流 React Flux https youtu be i 969noyAM是不
  • 有人可以解释以下涉及 Javascript 对象的双重赋值吗?

    这个问题在这里已经有答案了 var foo n 1 var bar foo foo x foo n 2 console log foo n 2 console log bar n 1 x n 2 有人能解释一下第三行发生了什么吗 线路foo
  • React-Router v4 渲染错误的组件但匹配正确

    我有一个带有两个按钮的侧边栏 测试 和 关于 Test 火箭图标 呈现在 test 处 About 主页图标 呈现在 处 它们都位于应用程序的根目录并嵌套在组件内 当我从 开始并单击 链接到 test 时 它总是加载 关于 组件 当我检查
  • 图像处理编程

    我想知道是否有任何方法可以使用某种编程语言检测图像中对象的位置 例如 如果我有一个球的图像 每 100 毫秒更新一次 是否可以通过某些程序使用某些东西来获取球的坐标 看一下OpenCV http opencv willowgarage co
  • Jquery UI:日期选择器。如何通过 $_GET 在日期选择器中设置日期

    我找不到如何设置 GET 变量来手动设置日期选择器中的日期 http jqueryui com demos datepicker http jqueryui com demos datepicker 例子 那可能吗 Thanks 在此使用
  • 是否可以使 font-weight:bold 等于 500 而不是 700?

    我刚刚使用 Google Fonts 并发现了 Fira Sans 字体 很好 但我不喜欢 Bold 700 风格 它太大胆了 不符合我的喜好 但是 如果我选择中 500 样式 浏览器不会将其用于任何设置为font weight bold
  • 媒体查询在 VueJS 样式标签中不起作用

    我正在尝试在 VueJS 组件的样式标签中使用 media media 中的样式始终有效 而不是使用宽度规则
  • 鼠标悬停在图像上显示 x

    我想在图像上显示 X 标记 尺寸为 24x24 为此我采用 li 元素和 in 元素 li style display inline block background 283038 border 1px solid 161b1f margi
  • 如何禁用 Aloha 编辑器工具栏?

    有没有办法像侧边栏一样禁用 Aloha 的 ExtJS 工具栏 Aloha settings modules aloha aloha jquery editables editable jQuery sidebar disabled tru

随机推荐

  • iOS 8 中的自定义键盘可以添加新字符吗?

    在 iOS 8 中 Apple 为开发人员提供了创建自定义键盘的能力 在里面文档 https developer apple com library prerelease ios documentation General Conceptu
  • vim可以实时监控文件的变化吗

    我的问题与此类似如何实时监控文本文件 https stackoverflow com questions 18632 how to monitor a text file in realtime但我想在vim中做 我知道我可以读取打开的文件
  • 两个或多个 Android 设备之间的 WiFi 聊天

    我想开发一个聊天应用程序 使用 wifi 网络在两个或多个 Android 设备之间聊天 该应用程序应该能够相互发送或接收字符串 我有在pc和android之间使用蓝牙网络的经验 任何人都可以给我任何建议或正确的方向 提前致谢 您可以在两个
  • 从班级内部传递代表

    trackableCollection正确注入Fragment and Activity有 AndroidEntryPoint 现在我需要将其注入 CustomView 中但在构造函数中 WithFragmentBindings Andro
  • 一次绘制一个图形而不关闭旧图形(matplotlib)

    有没有一种方法可以一次绘制一组图形 而不关闭前一个图形 保持对 UI 的控制 并在最后保持图形打开 也许使用更合适的后端 或者使用 OO 风格而不是下面使用的 pyplot pylab 风格来编写它 例如我知道我能做到 plt ioff f
  • 为 Mac OS X 10.6.8 安装 Pygame

    使用Python 2 7 2 当我尝试导入 pygame 时 收到此错误消息 Traceback most recent call last File
  • bigquery 中的条件连接

    我有两张桌子 表 1 是单列整数 表 2 有三列 start integer end integer data 简单的查询是将整数列与数据连接起来 其中 integer gt start integer AND integer lt end
  • “更改材料轮廓颜色”按钮不起作用

    我想更改活动切换按钮的颜色 但仅仅改变rippleColor 就会产生影响 我希望自定义活动按钮的背景颜色和文本颜色 在下面的toggleButtonGroup中 我使用了上面的这种样式
  • 使用 .NET 4.5.2 从 C# 代码更改键盘布局

    我正在为 SDL Trados Studio 插件编写代码 插件的最后一部分需要一些 API 根本没有公开的自动化 所以我所拥有的 坚持一些东西 就是自动化默认的键盘快捷键 我的代码非常适合英语键盘布局 还有匈牙利语 但它当然不适用于希腊语
  • 如何从同一台机器上运行的 Docker 加载主机中运行的 MongoDB 中的数据?

    我正在 Ubuntu 18 02 机器上通过以下命令运行 Pytorch docker 容器 Run Pytorch container image docker run it v home ubuntu Downloads docker
  • xcode 5 无法看到旧 iOS 项目中的 NSLog(s)

    我有一个旧的iOS6我去年玩过的应用程序 它只适合我的妻子 所以我从未发布过它 但我想掸掉它 看看它是否对其他人有用 所以我把它加载到XCode5 5 0 2 在 10 8 4 上运行 我也在我的家用笔记本电脑上尝试过这个 运行相同的XCo
  • 如何在 Xamarin Forms 中的其他项目之上显示 ListView?

    I have a ListView that displays recent Search items I have added it in the Stack Layout of my Main page I want to show L
  • HTML 输入文件按用户选择顺序进行多重排序

    如果用户选择多个文件 则需要按用户选择优先级排序 如facebook FileList 需要取决于用户顺序 这是示例代码 function handleFileSelect evt var files evt target files Fi
  • gestureRecognizer:shouldReceive Touch:没有被调用

    gestureRecognizer shouldReceive Touch 方法未被调用 是我设置不当吗 id init UILongPressGestureRecognizer touchHold UILongPressGestureRe
  • ContinueWith() 内的函数不起作用

    public void Login string email emailInputField text string password passwordInputField text auth SignInWithEmailAndPassw
  • 寻找短语共现矩阵的有效算法

    我有一个包含大约 40 000 个短语的列表 L 和一个包含大约 1000 万个单词的文档 我想检查的是哪一对短语同时出现在 4 个单词的窗口内 例如 考虑 L 棕色狐狸 懒狗 该文件包含 一只敏捷的棕色狐狸跳过懒狗 的字样 我想看看 棕色
  • 获取表的某些列只有空值

    我需要知道一张表的哪些列只有空值 我知道我应该在 user tab columns 中执行循环 但是如何仅检测具有空值的列呢 感谢并抱歉我的英语 要在事先不知道列标识的情况下执行查询 需要使用动态 SQL 假设您已经知道该表不为空 您可以执
  • 如何为静态变量分配内存?

    在下面的程序中 class Main static string staticVariable Static Variable string instanceVariable Instance Variable public Main Th
  • Micro USB 音频 - Android 开放配件

    好的 我正在从事一个处于研究阶段的独立项目 我浏览了互联网 没有发现关于这个话题的任何好东西 我发现的网站在编程社区中与 StackOverflow 一样各自独立 使用 Android 2 3 4 Gingerbread 中包含的 Andr
  • 固定表格标题与水平和垂直滚动主体

    目标 表头和表体的列宽应相同 表格标题固定在垂直滚动条上 要在水平滚动上移动的表标题 标头显示在 HTML 的可滚动部分内 问题陈述 表格标题在垂直滚动时未固定 标题显示在 HTML 的可滚动部分之外 当标题位置固定时 我看过很多帖子 但找