javascript - 如何更改 FixedTableHeader jQuery 插件以使其也具有固定的第一列?

标签 javascript jquery html css jquery-plugins

我正在使用此处的 jQuery 插件 http://www.tablefixedheader.com/制作一个带有固定标题、排序和其他很酷功能的时髦表格。现在,我还研究了 jqGrid,它看起来棒极了,但我们正在用我们的数据源做一些时髦的事情,我认为它还没有准备好与 jqGrid 一起玩。

无论如何,我的老板希望我创建的表格的第一列是固定的,这样他们就可以在 x 轴上滚动,但仍能看到第一列。我如何修改此插件以提供此功能?

非常感谢任何帮助

谢谢

编辑:

我尝试添加:

th:first-child
{
    position        : relative; 
}
td:first-child
{
    position        : relative; 
}

和“固定”一样,但它似乎比这个简单的解决方案更复杂......

这样做确实有效果,就是没那么讨喜。进行此更改会导致它在左侧保持静止,但我无法真正向下滚动,而且 th 似乎真的不起作用。

编辑 2:

我已经开始实现下面给出的解决方案,尽管我对自己修改此插件的能力并不完全有信心。无论如何,这是当前的修补状态:

我会继续更新的...

我收到一条错误消息,提示 this.offset.top 为 null 或不是一个对象...等等,

这段代码在文档中。准备好的东西:

         var currentTop = 0;
         var currentLeft = 0;
         var currentWidth = 0;
         var currentHeight = 0;
         var currentContent = "";
         var currentDiv = "";
         var currentID = "";
         $('td:first-child').each(function (index) {
             currentTop = $(this).offset.top;
             currentLeft = $(this).offset.left;
             currentWidth = $(this).width;
             currentHeight = $(this).height;
             currentContent = $(this).html();
             currentID = "fixed_column_cell" + index;
             currentDiv = "<div class=\"fixed_column_cells\" id=\"" + currentID + "\">" + currentContent + "</div>";
             $('body').append(currentDiv);
             $('#' + currentID).offset({ top: currentTop, left: currentLeft });
             $('#' + currentID).width(currentWidth);
             $('#' + currentID).width(currentHeight);
         });
         $('fixed_column_cells').css('position', 'fixed');

目前卡住

最佳答案

有趣的问题。我不认为您会发现表格单元格 (TD) 元素会想要以这种方式为您工作。要做的事情可能是遍历所有 td:first-childs 并将它们的内容复制到与 TDs 重叠的相同大小的 div 中。这些 div 可以让您正确定位它们。

我认为您遇到了一些具有固有表格单元格行为的限制。

伪代码:

  • 对于第一列中的每个表格单元格
  • 获取左上角的位置
  • 获取宽度和高度
  • 在相同位置创建相同大小的新div
  • 将内容复制到新的div中
  • 将div设置为固定位置

关于javascript - 如何更改 FixedTableHeader jQuery 插件以使其也具有固定的第一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193207/

相关文章:

html - 如何防止浏览器窗口调整大小时 block 偏移发生 1-2px 的变化

javascript - 使用弹出窗口的多个实例

javascript - 在列表中前后循环

javascript - jQuery 平滑滚动问题

JQuery 进度条 - 添加文本和更改背景颜色

javascript - 您可以使用的 .animate() 的数量是否有限制

jquery - 如何隐藏特定的 div 标签

javascript - 我正在尝试复制这个图像轮播,但我遇到了样式问题

javascript - jQuery:请求 getJSON + SunlightLabs API 帮助

javascript - 使用JS从文本文件中读取变量