我有一张桌子
<table>
<tr> <td> ---- asp.net gridview </td>
<td> <div class=persondetails> </div> </td></tr>
</table>
我的javascript来自另一篇论坛文章
<script language="javascript" type="text/javascript">
var personDetail = document.querySelector('.persondetails');
alert (personDetail);
var origOffsetY = personDetail.offsetTop;
debugger;
function onScroll(e) {
debugger;
window.scrollY >= origOffsetY ? personDetail.classList.add('sticky') :
personDetail.classList.remove('sticky');
}
document.addEventListener('scroll', onScroll);
</script>
我的asp.net gridview根据no而垂直增长。人当选择网格上的人时,第二个td上的div将填充一些字段。它工作正常。
当列表变得太大,我必须在底部选择一个人时,右侧的人员详细信息显示在顶部。这使用户可以向上滚动以查看页面底部网格中所选人员的详细信息。
当用户向下滚动页面时,有没有办法在右侧显示div以向下滚动?我检查了这个论坛上的其他链接,但没有成功。我不确定这是否是由于我的桌子和td布局。
我在指定的警报处获得null。
答案 0 :(得分:3)
你应该使用这样的position fixed
:
var $details = $(".details"),
detailsPos = $details.position().top;
$(window).on("scroll", function() {
if ($(window).scrollTop() > detailsPos)
$details.css("position", "fixed").css("top",0);
else
$details.css("position", "static");
});
请注意,代码应该包含在document ready
中,如下所示:
$(function() {
// ... code ...
});
答案 1 :(得分:0)
更好的方法是使用CSS样式的div。