如何检测到客户端已滚动到网页的顶部或底部

How can I detect that the client is scrolled to the top or bottom of a webpage?

本文关键字:网页 滚动 顶部 底部 客户端 何检测 检测      更新时间:2023-09-26

我正在寻找一种跨浏览器的方法来检测客户端web浏览器是否一直滚动到屏幕的底部(或顶部)。

实际上,顶部相当容易,因为
scrY = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop
如果你在顶端,则为零。问题是scrY似乎返回了滚动条的顶部,而不是底部,所以我没有得到与文档高度(像素)相等的东西,而是文档的高度减去滚动条的大小。

有没有一种简单的、跨浏览器的方法可以发现用户是否向下滚动到文档/窗口的底部?最具体地说,我理解一般的滚动条操作(设置、移动等),但我如何才能获得滚动条底部位置相对于窗口/文档底部的增量。

http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html

http://www.sitepoint.com/article/preserve-page-scroll-position/

http://codepunk.hardwar.org.uk/ajs02.htm

为了确保元素可见,可以使用.scrollIntoView方法

FF 3.5中工作原理的总结:

function isTop() {
    return window.pageYOffset == 0;
}
function isBottom() {
    return window.pageYOffset >= window.scrollMaxY;
}