当用户使用jQuery将其滚动到视图外时,表头保持固定在顶部

我正在尝试设计一个HTML表,当用户将其滚动到视图外时,并且仅当页眉停留在页面顶部时。例如,表格可能比页面低500像素,我该如何制作表格,以便如果用户将标题滚动到视图之外(浏览器以某种方式不再在Windows视图中检测到它),它将保持在顶部?任何人都可以给我一个Javascript解决方案吗?

<table>

<thead>

<tr>

<th>Col1</th>

<th>Col2</th>

<th>Col3</th>

</tr>

</thead>

<tbody>

<tr>

<td>info</td>

<td>info</td>

<td>info</td>

</tr>

<tr>

<td>info</td>

<td>info</td>

<td>info</td>

</tr>

<tr>

<td>info</td>

<td>info</td>

<td>info</td>

</tr>

</tbody>

</table>

因此,在上面的示例中,<thead>如果页面不可见,我希望随页面一起滚动。

重要信息:我 在寻找<tbody>具有滚动条的解决方案(溢出:自动)。

回答:

您可以通过点击上的scroll事件处理程序window并使用另一个table具有固定位置的事件处理程序来执行此操作,以在页面顶部显示标题。

<table id="header-fixed"></table>

#header-fixed {

position: fixed;

top: 0px; display:none;

background-color:white;

}

var tableOffset = $("#table-1").offset().top;

var $header = $("#table-1 > thead").clone();

var $fixedHeader = $("#header-fixed").append($header);

$(window).bind("scroll", function() {

var offset = $(this).scrollTop();

if (offset >= tableOffset && $fixedHeader.is(":hidden")) {

$fixedHeader.show();

}

else if (offset < tableOffset) {

$fixedHeader.hide();

}

});

当用户向下滚动足够远以隐藏原始表头时,将显示表头。当用户再次向上滚动页面足够远时,它将再次隐藏。

以上是 当用户使用jQuery将其滚动到视图外时,表头保持固定在顶部 的全部内容, 来源链接: utcz.com/qa/413757.html

回到顶部