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

Som*_*ody 82 jquery scroll

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

Dem*_*wis 177

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

$(selector)[0].scrollHeight
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,根据Mozilla知识库,IE版本不支持小于8.0 https://developer.mozilla.org/en/DOM/element.scrollHeight (12认同)
  • 嗯,没有$(document).offset()返回null,而.offset()与浏览器滚动条的位置无关(.offset()返回项目相对于文档的坐标).我同意我们应该尽可能使用jQuery,但显然,由于没有跨浏览器支持,jQuery不提供它的抽象. (3认同)
  • 同意@Tomas,使用jQuery的抽象来更好地处理跨浏览器的怪癖.例如,上面的内容可以修改为$(selector).offset().top (2认同)
  • 你也可以做$(选择器).get(0).scrollHeight (2认同)

Bob*_*gor 46

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

$(document).scrollTop() //returns scroll position from top of document
Run Code Online (Sandbox Code Playgroud)

  • -1 - 这很好,但是没有回答关于`scrollHeight`的问题. (101认同)
  • 正确,这是一个jquery问题.但是$(document).height()或$(document).scrollTop()都没有提供所需的信息.请求是scrollHeight.scrollHeight值是元素可用的总高度(如果它是可滚动的,则该值可能大于它的高度).scrollTop返回元素顶部的距离.两者都没有回答总可用高度.有关了解scrollHeight的信息,请参见http://help.dottoro.com/ljbixkkn.php (8认同)
  • 这被标记为答案,因为它回答了提问者的*预期*问题,这是关于文档当前滚动的高度... ergo"scrollHeight".这个名字在不同的背景下使用是巧合. (4认同)
  • 巴啊,我的错.我正在打开带有打开的firebug窗口的滚动条.Ofc它现在可以是576px.:)谢谢,我猜主题已关闭. (3认同)

Ank*_*kit 45

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

$(document).prop('scrollHeight')
Run Code Online (Sandbox Code Playgroud)

以前的版本用于从attr获取值,但不是在1.6之后.

  • 对于我来说,使用jQuery 1.7.1返回"undefined",$(document).attr("scrollHeight")也是如此. (12认同)
  • 那是因为它缺少了身体元素.它需要是$(document.body).prop('scrollHeight') - 此时你也可以使用document.body.scrollHeight; (5认同)

Sac*_*n R 6

document.getElementById("elementID").scrollHeight

$("elementID").scrollHeight
Run Code Online (Sandbox Code Playgroud)

  • $('#gallery').scrollHeight给我undefined //#gallery是我的溢出的id:auto元素,不起作用 (2认同)

小智 6

它使用HTML DOM Elements,但不使用jQuery选择器.它可以像:

var height = document.body.scrollHeight;
Run Code Online (Sandbox Code Playgroud)