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参数。