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

v1l68za4  于 2023-05-06  发布在  jQuery
关注(0)|答案(9)|浏览(127)

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

yhqotfr8

yhqotfr81#

以下是如何使用jQuery选择器获取元素的scrollHeight

$(selector)[0].scrollHeight

如果selector是元素的id(例如elemId),则保证数组的0索引项将是您希望选择的元素,并且scrollHeight将是正确的。

oxcyiej7

oxcyiej72#

$(document).height() //returns window height

$(document).scrollTop() //returns scroll position from top of document
wvmv3b1j

wvmv3b1j3#

如果您使用的是Jquery 1.6或更高版本,请使用prop来访问值。

$(document).prop('scrollHeight')

以前的版本使用attr获取值,但不是1.6版。

0pizxfdo

0pizxfdo4#

document.getElementById("elementID").scrollHeight

$("elementID").scrollHeight
hm2xizp9

hm2xizp95#

它使用HTML DOM元素,但不使用jQuery选择器。它可以像这样使用:

var height = document.body.scrollHeight;
xbp102n0

xbp102n06#

类似这样的东西应该可以解决你的问题:

$.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:每次需要时调用该函数,警报是用于测试目的。

fquxozlt

fquxozlt7#

为了获得窗口滚动条滚动区域的实际可滚动高度,我使用了$('body').prop('scrollHeight')。这似乎是最简单的工作解决方案,但我没有广泛检查兼容性。Emanuele Del Grande提到了另一个解决方案,这可能不适用于低于8的IE。
大多数其他解决方案对于可滚动元素都很好,但这适用于整个窗口。值得注意的是,对于Ankit的解决方案,我遇到了与Michael相同的问题,即$(document).prop('scrollHeight')返回undefined

0aydgbwb

0aydgbwb8#

试试这个:

var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
tzcvj98z

tzcvj98z9#

您可以尝试这样做,例如,这段代码将滚动条放在所有DIV标记的底部
记住:jQuery可以接受函数而不是值作为参数。“this”是jQuery处理的对象,该函数返回当前DIV“this”的scrollHeight属性,并对文档中的所有DIV执行此操作。

$("div").scrollTop(function(){return this.scrollHeight})

相关问题