Javascript 为什么文档高度等于窗口内部高度+;页面偏移?
我试图检测用户何时滚动到页面的最底部 我最终得到的解决方案如下Javascript 为什么文档高度等于窗口内部高度+;页面偏移?,javascript,html,Javascript,Html,我试图检测用户何时滚动到页面的最底部 我最终得到的解决方案如下 var windowHeight = "innerHeight" in window ? window.innerHeight : document.documentElement.offsetHeight; var body = document.body, html = document.documentElement; var docHeight = Math.max(body.scrollHeight, body.offse
var windowHeight = "innerHeight" in window ? window.innerHeight : document.documentElement.offsetHeight;
var body = document.body, html = document.documentElement;
var docHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
var windowBottom = windowHeight + window.pageYOffset;
if (windowBottom >= docHeight) {
// Bottom is reached
}
我不明白这为什么有效
从文档中,是视图门户的高度,是我们进行的滚动量
所以为了检测滚动到底,我是否应该检查pageYOffset>=documentHeight
为什么我必须添加
内部高度
?这与角度无关。所有浏览器都是这样工作的
您的pageYOffset
永远不会大于文档高度,因为它表示视口的顶部。为了使pageYOffset
等于文档高度,您必须滚动到页面末尾
最大pageYOffset
可以是docHeight-window.innerHeight
。所以你的支票可以是:
if (pageYOffset >= docHeight - window.innerHeight) {
// Bottom is reached
}
这与角度无关。所有浏览器都是这样工作的 您的
pageYOffset
永远不会大于文档高度,因为它表示视口的顶部。为了使pageYOffset
等于文档高度,您必须滚动到页面末尾
最大pageYOffset
可以是docHeight-window.innerHeight
。所以你的支票可以是:
if (pageYOffset >= docHeight - window.innerHeight) {
// Bottom is reached
}