Javascript 在滚动时修复顶部有特定类的表行

Javascript 在滚动时修复顶部有特定类的表行,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个用Javascript制作的HTML表格 我希望能够滚动并在顶部保留某一行(不是标题,而是一行)。我试过这个: $(window).bind('scroll', function () { console.log('menuTop') if ($(window).scrollTop() > 10) { $('.menuTop').addClass('fixed'); } else { $('.menuTop').r

我有一个用Javascript制作的HTML表格

我希望能够滚动并在顶部保留某一行(不是标题,而是一行)。我试过这个:

 $(window).bind('scroll', function () {
     console.log('menuTop')
     if ($(window).scrollTop() > 10) {
         $('.menuTop').addClass('fixed');
     } else {
         $('.menuTop').removeClass('fixed');
     }
 });
这似乎不起作用。我希望数字和字母在滚动时保持在顶部(这些被归类为“menuTop”)。但在卷轴上,它们似乎都折叠到左手边的一个。“H”位于顶部


有什么想法吗?

单纯使用HTML/CSS没有简单的方法可以做到这一点。它需要一个JavaScript解决方案。基本方法是使用
或其他块元素克隆标题单元格,并绝对或固定定位克隆


有很多人可以帮你做这项工作。如果你自己写,你应该试着写一些代码,只有当你遇到一个特定的、可重复的错误时才在这里发布。

我想你是这样想的,如果是,那么你需要在第10个
tr
中添加类

.fixed{
    display: table;
    left: 0;
    position: fixed;
    top: 0;
    width: 824px;
}


希望它能对您有所帮助。

需要将您的固定项目移动到行,而不是单元格,并且您需要设置顶部和左侧样式属性,而不是让其确定,因为每个浏览器将使用用户代理默认设置固定项目


此外,表格宽度从填充单元格的内容扩展而来,该行上的单元格将不会保持相同的宽度,除非您使用JS从计算的行单元格宽度中检测“列同级”,并设置该行中的每个行单元格宽度

在所有其他答案的帮助下,我成功地解决了这个问题

更新小提琴:

尽管如此,正如“Twintails”所提到的,我必须显式地设置列宽,如果我诚实的话,这是一件痛苦的事情

我这样做的方式不是将固定位置应用于行中的每个单元格,而是将类应用于整行。然后在css中设置以下属性:

.fixed{    
     display: table;
    left: 0;
    position: fixed;
    top: 0;
    width: 95.72%;

}
另一件永远不应该做的事情,就是像我在这里做的那样在css中设置宽度。然而,它在我的处境中帮助了我


希望这对其他人有所帮助:)

可能重复@benjarwar,从技术上讲不是标题……我不同意,但即使您没有使用
元素(您应该这样做),您也会遇到同样的问题,即固定/绝对定位将单元格置于表范围之外(请参阅我下面的评论)谢谢@benjarwar:))啊真的:(那有点糟糕,我以为我在定位上做错了什么:(谢谢链接,我会马上开始:)我会等一会儿,看看是否有其他人给出了解决方案,如果没有,我会选择你的,因为它为我指明了正确的方向:))您可以在表头元素上设置绝对/固定位置。问题是它超出了表呈现范围,这意味着
列将不再链接到标题,并且宽度将无法正确计算。另一个解决方案是,如果你这样做的话,可能需要迭代表格单元格来计算适当的标题元素的宽度(在表格呈现之后,也可能在窗口调整大小时)。是的,所有这些都是有意义的,但它需要更多的工作哈哈,我认为有一个更简单的方法:((这将修复元素的位置,但它们将失去与其余数据行/单元格的列对齐。