如何获取文档的滚动位置?

时间:2010-08-04 15:31:24

标签: jquery scroll

如何获取文档的滚动位置值?

9 个答案:

答案 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})