html - 有没有一种 css3 方法可以将 <thead> 固定在 y 轴上,让它在 x 轴上滚动?

标签 html scroll position

这已被问了无数次:here , there, the other place就这样。然而,我找不到真正好的答案。

通常我的表格在垂直方向上比视口(viewport)深得多。我希望能够滚动表格的 <tbody>而它的 <thead>保持固定和可见。其中一些表格也比视口(viewport)宽得多。在这里,我想要表格的 <thead>水平滚动。

为了得到效果,我有几十行JS,包括setInterval( )打电话检查scrollLeftscrollTop ,以便我可以重新定位 <thead>副本 1。它有效,但它是一个巨大的、笨拙的、脆弱的、无法维持的痛苦。

问题:是否有一些直接的 css3 方法(现有的、新兴的或提议的)可以用来获取表格的 <thead><tbody>水平和垂直滚动,但彼此独立? 谢谢!


1 为什么 setInterval( ) ?因为 IE 不统一提供 onScroll事件,你傻; 每个人都知道!

最佳答案

我最终根据@Naveed Ahmad 的建议对“解决方案”进行了建模。我将表格的数据部分放在 中;并制作了一个假的 ,我在加载时通​​过引用表格第一行中 的宽度和偏移量来填充它,如下所示:

function position_col_heads ( ) {
  // get all the TD child elements from the first row
  var tds = main_tbody.children[0].getElementsByTagName('TD'); 
  for ( var i = 0; i < tds.length; ++i ) {
    thead.children[i].style.left =
      parseFloat( tds[i].offsetLeft ) + 'px';
    thead.children[i].style.width = 
      parseFloat( tds[i].scrollWidth ) + 'px';
  }
}

这或多或少可行 on this page .

关于html - 有没有一种 css3 方法可以将 <thead> 固定在 y 轴上,让它在 x 轴上滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703393/

相关文章:

javascript - 多个页面的JS函数

javascript - 单击播放一次 gif 并改回来

java - 在 SVG 中创建图像并使用 Base64 编码 URI 和 JAVA 在 HTML 中渲染它们

javascript - 水平 div 图像滚动动态宽度

chrome中刷新页面时Html元素改变位置

javascript - 如何对附加的 div 进行事件委托(delegate)?

苹果手机 SDK :Can't diagonal scrolling in a image array?

具有固定位置和可滚动表格数据元素的 HTML 表格标题

c++ - 在 Qt 中更改 show() 上的窗口位置

CSS 窗口根据浏览器高度调整大小