javascript - 带滚动条的表格中的绝对/固定标题

标签 javascript jquery css clusterize

我有一个表,其中包含我无法控制的数据(它来自用户)。我们使用一个名为Clusterize的插件这让我们可以平滑地滚动数万行,这些行具有所需的某种特定类型的标记(您将在我的 JSBin 中看到“集群”类)。

问题是,在具有滚动条(例如 Windows 或 OS X)并插入鼠标的计算机上,我们的固定表格标题上没有滚动条,这使得当您水平滚动时,它不会以相同的“速度”正确滚动由于宽度或其他原因导致整个表格溢出。我在 JSBin 链接中有一个行为示例。

同样,在带有滚动条的计算机上。您也可以在 OS X 偏好设置中始终打开滚动条。

http://output.jsbin.com/wekafiq

这里还有一些屏幕截图。第一个是滚动,第二个是向右滚动时。

enter image description here

enter image description here

我愿意接受任何可能的修复,包括仅 CSS、仅 JS 或其他任何内容。我花了大约 2 天的时间尝试不同的事情,这是我所得到的最接近的结果,但我已经没有想法了。

最佳答案

类似的问题已经在 Clusterize 的 gitter 中讨论过,查看 https://gitter.im/NeXTs/Clusterize.js

您可以在主表之外添加单独的表,仅用于标题,并使其与主区域列宽度保持同步。

示例 http://codepen.io/NeXTs/pen/ZbmWqg

var fitHeaders = (function() {
  var prevWidth = [];
  return function() {
    var $firstRow = $('#contentArea tr:not(.clusterize-extra-row):first');
    var columnsWidth = [];
    $firstRow.children().each(function() {
      columnsWidth.push($(this).width());
    });
    if(columnsWidth.toString() == prevWidth.toString()) return;
    $('#headerArea tr').children().each(function(i) {
      $(this).width(columnsWidth[i]);
    });
    prevWidth = columnsWidth;
  }
})();

var clusterize = new Clusterize({
  rows: data,
  scrollId: 'scrollArea',
  contentId: 'contentArea',
  callbacks: {

    // Update headers width on cluster change
    clusterChanged: function() {
      fitHeaders();
    }
  }
});

// Update headers width on window resize
$(window).resize(_.debounce(fitHeaders, 150));

关于javascript - 带滚动条的表格中的绝对/固定标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34078893/

相关文章:

javascript - 如何记住事件菜单

javascript - 如何优化 Jquery 中的 ajax 请求?

javascript - 我想将其转换为 javascript 函数或通过 css 将图像转换为蓝色或黄色

css - 停止在上方展开 div 的下拉菜单

javascript - 为什么 margin 仅在 .info 处于事件状态时适用

javascript - 我可以在不使用 JS 和 HTML5 的情况下验证 HTML 输入吗?

javascript - 为什么这个 react 引导模式没有正确响应?

javascript - HTML 文件输入 - 选择后锁定文件

html - 为什么我不能将新幻灯片添加到我的纯 css 幻灯片中?

html - 跨浏览器填充/边距