jQuery滑动表头

我的ASP.Net应用程序从代码隐藏生成 。 我需要的是当用户滚动它时,该表的标题行向下滑动页面。

我使用JavaScript尝试了以下方法:

 window.onscroll = function () { //grab the current scroll position var scrollY = document.body.scrollTop; if (scrollY == 0) { if (window.pageYOffset) scrollY = window.pageYOffset; else scrollY = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0; } //grab the position of the header row I want to slide var head = $("tr[name='headerrow']").offset(); var headtop = head.top; var headleft = head.left; //if the user has scrolled past the top of the header row if (scrollY > headtop) { //code correctly reaches this point as alerts show //alert('got here'); //position the header row to the same as the scroll position $("tr[name='headerrow']").offset({ top: scrollY, left: headleft }); } } 

我不能让行动。 各种浏览器开发人员工具上没有错误消息。

任何帮助,将不胜感激。

编辑 :我尝试在行的子节点(即所有

元素)上调用offset()函数,如下所示:

 $("tr[name='headerrow']").children().offset({ top: scrollY, left: headleft }); 

这现在有效,但当然,它们都被推到左边,因为我正在使用标题行本身的left值…我会随着我的进度更新这个,但在此期间任何帮助都被赞赏为总是。

解:

使用表行上的children()方法可以更改每个

元素的偏移量。 可以从offset()方法中省略left值,即

 $("tr[name='headerrow']").children().offset({ top: scrollY }); 

您不能将偏移设置为任何元素。 您应该使用css方法并设置top和left参数。