如何获取文档的滚动位置值?
答案 0 :(得分:177)
以下是如何获取使用jQuery选择器获取的元素的scrollHeight
:
$(selector)[0].scrollHeight
如果selector
是元素的id(例如elemId
),则保证数组的0索引项将是您要选择的元素,{{1}将是正确的。
答案 1 :(得分:46)
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
答案 2 :(得分:45)
如果您使用的是Jquery 1.6或更高版本,请使用prop访问该值。
$(document).prop('scrollHeight')
之前的版本用于从attr获取值,但不是在1.6之后。
答案 3 :(得分:6)
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
答案 4 :(得分:6)
它使用HTML DOM Elements,但不使用jQuery选择器。 它可以像:
一样使用var height = document.body.scrollHeight;
答案 5 :(得分:3)
这样的事情可以解决你的问题:
$.getDocHeight = function(){
var D = document;
return Math.max(Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), Math.max(D.body.clientHeight, D.documentElement.clientHeight));
};
alert( $.getDocHeight() );
Ps:每次需要时调用该函数,警报用于测试目的..
答案 6 :(得分:3)
为了获得窗口滚动条滚动区域的实际可滚动高度,我使用了$('body').prop('scrollHeight')
。这似乎是最简单的工作解决方案,但我没有广泛检查兼容性。 Emanuele Del Grande注意到另一个解决方案,这可能不适用于低于8的IE。
大多数其他解决方案适用于可滚动元素,但这适用于整个窗口。值得注意的是,我和Ankit的解决方案有同样的问题,即$(document).prop('scrollHeight')
正在返回undefined
。
答案 7 :(得分:1)
试试这个:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
答案 8 :(得分:0)
例如,您可以尝试此操作,此代码将滚动条放在所有DIV标记的底部
请记住:jQuery可以接受函数而不是值作为参数。 “this”是jQuery处理的对象,该函数返回当前DIV“this”的scrollHeight属性,并为文档中的所有DIV执行此操作。
$("div").scrollTop(function(){return this.scrollHeight})