使用jquery获取滚动位置

时间:2013-02-14 23:37:36

标签: javascript jquery

奇怪的请求,但我需要将当前浏览器的滚动位置作为变量。我应该使用什么js或jquery函数?我需要它来确定侧面显示的元素。我在网上发现了一些东西,但没有什么对我的div有用,只是整页。

4 个答案:

答案 0 :(得分:112)

跨浏览器变体

$(document).scrollTop();

答案 1 :(得分:31)

较旧的IE和Firefox浏览器会将滚动条附加到documentElement,或HTML中的<html>标记。

所有其他浏览器都会将滚动条附加到document.body,或HTML中的<body>标记。

正确的解决方案是检查使用哪一个,具体取决于浏览器

var doc = document.documentElement.clientHeight ? document.documentElement : document.body;
var s   = $(doc).scrollTop();

jQuery确实使这更容易,当传入windowdocument jQuery的scrollTop做了类似的检查并计算出来,所以其中任何一个应该跨浏览器工作

var s = $(document).scrollTop();

var s = $(window).scrollTop();

jQuery scrollTop() docs

  

描述:获取滚动条的当前垂直位置   匹配元素集中的第一个元素或设置垂直元素   每个匹配元素的滚动条的位置。


  

......没有什么对我的div有用,只有整页

如果是DIV,你必须定位附有滚动条的元素,以获得滚动量

$('div').scrollTop();

如果您需要从文档顶部获取元素距离,您也可以

$('div').offset().top

答案 2 :(得分:3)

我认为使用jQuery的最佳方法是使用.scrollTop()

var pos = $('body').scrollTop();

答案 3 :(得分:1)

使用scrollTop()获取或设置滚动位置。