ach*_*a99 9 javascript jquery scroll html-table
在我尝试重新发明轮子之前(通过jQuery插件或类似方法),我正在尝试查看是否有更简单的方法来执行此操作或用户可能知道的现有插件.我要做的是滚动包含多个表头的表的主体.例如,想象一下这种结构:
<table>
<thead>
<tr>
<td colspan="2"></td>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
<thead>
<tr>
<td colspan="2"></td>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
老实说,我还没有尝试过上面的语法甚至看看它是否有效.我实际的标记目前没有使用thead/tbody而是滚动整个父div(见下文).

我想要实现的是滚动整个表格,以便在最顶层查看最相关部分的标题.目前,标题滚动出视图是否有足够的行.
我知道用于滚动带有一个标题的表的各种技术,但是多重呢?有没有现成的方法来实现这一目标?我对不同的想法持开放态度,但现在我只想在顶部显示内容最相关的表头.
Ale*_*lor 15
几个月前,我编写了一些代码,完全按照我希望标题执行类似于iOS上的节标题的方式执行.利用Jquery,我最终得到的解决方案包括创建一个onScroll(以及用于窗口大小调整的onResize)事件监听器,该监听器对所有人$('table thead')进行检查$(this).position()并在页面上检查它们.
检查是否thead位置高于当前视口的顶部.
一旦找到了最相关的标题(最底部thead位于视口上方),我创建了一个新的table,带有position: fixedat(0,0)并将其复制到每个标题行列的新列中,并手动将其width属性设置为匹配原始表.
这是一些如何工作的伪代码:
thead部分的列表thead阵列中的具有顶部位置小于scrollTop所述的body元件[0, originalTable.left]outerWidth原始表的宽度td找到的宽度设置为td原始表中匹配的宽度还有一些其他边缘案例细节也使这更好:
tbody具有固定标题的下方的"真实"标题行是否应该将其推开而改变的.position:absolute由于Firefox和IE在运行onScroll处理程序时不会非常快,因此您倾向于看到"抖动",因此这种方法比我尝试过的其他方法更好.我也尝试使用s 的position属性thead,这只是在表格列宽度跳跃而不匹配数据.
thead 此解决方案并不严格要求节点,因为您可以使用其他一些选择器来确定哪些行是标题等.
更新:添加了示例代码和伪代码
| 归档时间: |
|
| 查看次数: |
4832 次 |
| 最近记录: |