Javascript 如何获得最大文档滚动上限值
我正在制作一些插件,我需要获得文档的最大值。 最大Javascript 如何获得最大文档滚动上限值,javascript,jquery,scrolltop,Javascript,Jquery,Scrolltop,我正在制作一些插件,我需要获得文档的最大值。 最大scrollTop值为2001,但$(文档)。height()返回2668和$('body')[0]。scrollHeight给我未定义的 如何通过javascript/jquery获取2001 您评论中的代码应该有效: $(document).height() - $(window).height() 下面是一个当您滚动到最大滚动位置时发出警报的示例:如果您想“猜测”最大滚动顶部值,可能应该比较文档高度和视口高度(窗口大小) 当然,在您的插件
scrollTop
值为2001
,但$(文档)。height()
返回2668
和$('body')[0]。scrollHeight
给我未定义的
如何通过javascript/jquery获取2001
您评论中的代码应该有效:
$(document).height() - $(window).height()
下面是一个当您滚动到最大滚动位置时发出警报的示例:如果您想“猜测”最大滚动顶部值,可能应该比较文档高度和视口高度(窗口大小)
当然,在您的插件中,您还应该在resize事件上添加一个侦听器,并重新计算最大scrollTop。在vanilla Javascript中,我目前正在执行以下操作:
如果它存在,则返回,否则计算它。我在这里使用的是document.scrollingElement
,它只存在于特定的浏览器上,但它是。这是我写的一个答案,它是关于scrollTopMax的polyfill,它是元素对象的本机属性。(仅限mozilla)。看看你的反应,你会很喜欢的
下面只是一个简短的片段。链接中的答案更丰富(请务必查看)
使用示例:
var el = document.getElementById('el1');
var max = el.scrollLeftMax;
试试这个,简单易行的解决方案
document.body.getBoundingClientRect().bottom;
我想我刚刚发现$(文档)。高度-$(窗口)。高度编号。。。这给了我2011年。救命啊!您是否尝试过$(document).prop(“滚动高度”)代码>,或者如果您的页边距弄乱了内容:$(文档).outerHeight()-$(窗口).outerHeight()
,或者获取总滚动高度减去窗口高度:$(文档).prop(“滚动高度”)-$(窗口).outerHeight()
。不。。。第一个是2011年,第二个是NaN…outerHeight(true)
?呃。。。为什么我有那些额外的10像素(@hjuster TryouterHeight
两者都可以吗?同样是2011年的outerHeight,没有变化……但无论分辨率如何,差异始终是10px,这实际上是个好消息!你怎么知道应该是2001年?我的示例对你正确吗?@hjuster可能是窗口和文档上带有outerHeight的滚动条高度,这是值得的King,和我的函数一样。试试它!对我来说它不起作用,我总是有那些超自然的额外的10px。你的函数给了我和第一个评论一样的结果,$$(文档)。
(function(elmProto){
if ('scrollTopMax' in elmProto) {
return;
}
Object.defineProperties(elmProto, {
'scrollTopMax': {
get: function scrollTopMax() {
return this.scrollHeight - this.clientTop;
}
},
'scrollLeftMax': {
get: function scrollLeftMax() {
return this.scrollWidth - this.clientLeft;
}
}
});
}
)(Element.prototype);
var el = document.getElementById('el1');
var max = el.scrollLeftMax;
document.body.getBoundingClientRect().bottom;