Javascript jQuery滑动表头

Javascript jQuery滑动表头,javascript,jquery,html-table,Javascript,Jquery,Html Table,我的ASP.Net应用程序从codebehind生成一个。我需要的是,当用户滚动页面时,该表的标题行在页面上向下滑动 我使用JavaScript尝试了以下方法: window.onscroll = function () { //grab the current scroll position var scrollY = document.body.scrollTop; if (scrollY == 0) { if (window.pageYOffset

我的ASP.Net应用程序从codebehind生成一个
。我需要的是,当用户滚动页面时,该表的标题行在页面上向下滑动

我使用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 });
    }
}
我弄不动那排人。在各种浏览器开发工具上都看不到错误消息

任何帮助都将不胜感激

EDIT:我尝试对行的子元素(即所有
元素)调用
offset()
函数,如下所示:

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

这现在起作用了,但当然,它们都被推到了左边,因为我使用的是标题行本身的
left
值。。。我会随时更新我的进度,但在此期间,我们将一如既往地感谢您的帮助。

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

解决方案:

使用表行上的
children()
方法可以更改每个
元素的偏移量。
left
值可以从
offset()
方法中省略,即

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

不正确,偏移量可应用于大多数图元-请参见上面的“我的编辑”。另外,我不能使用CSS来应用top和left,因为我没有使用
absolute
fixed
定位。