如何在页面加载事件之后获取scrollTop?

问题描述 投票:2回答:1

我知道如何获取页面的scrollTop,我使用了这个简单的JS函数(代码被复制):

function GetScrolledTop() 
{
   //I never work in IE quirkmode, I always use DOCTYPE as 1st line, so I don't need to test for document.body.scrollTop
   return self['pageYOffset'] || document.documentElement.scrollTop; 
}

这可行,我的问题如下:我试图在页面onload事件中添加它

<body onload="alert(GetScrolledTop());">

在页面加载时,我得到了零(这很有意义),但是问题是我得到了零。[[即使我滚动页面然后重新加载它而不接触滚动条。

似乎浏览器可以:

    加载页面
  1. 打电话给我的GetScrolledTop()(显然是零)
  2. 然后将页面滚动到之前的位置。
  • 您知道在第3步之后如何获得scolledTop吗?我的意思是如何获取scrolledTop

    浏览器滚动页面后?

  • (也许无需使用计时器)
    javascript dom-events onload scrolltop onscroll
    1个回答
    2
    投票
    可能不是不使用计时器。但是您可能可以使用一个延迟为0ms的计时器,该计时器将在线程变为空闲状态时执行该功能,同时仍然看起来是即时的:

    <body onload="window.setTimeout(function () { alert(GetScrolledTop()); } , 0);">

    EDIT-认为值得一提的是most browsers支持onscroll事件,该事件应在窗口滚动后触发。

    © www.soinside.com 2019 - 2024. All rights reserved.