使用jquery获取滚动位置

奇怪的请求,但我需要获取当前的浏览器滚动位置作为variables。 我应该使用什么js或jquery函数? 我需要它弄清楚什么元素显示在一边。 我在网上发现了一些东西,但没有什么适用于我的div,只是整个页面。

跨浏览器变种

$(document).scrollTop(); 

较早的IE浏览器和Firefox浏览器将滚动条附加到documentElement ,或者<html><html>标签是什么。

所有其他浏览器都将滚动条附加到document.body ,或者HTML中的<body>标签是什么。

正确的解决scheme是根据浏览器检查使用哪一个

 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()文档

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


…没有什么适合我的div,只是整个页面

如果是DIV,则必须定位附带滚动条的元素才能获取滚动的数量

 $('div').scrollTop(); 

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

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

我相信用jQuery的最好方法是使用.scrollTop()

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

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