scrollTop()在Firefox中返回0,但在Chrome中不返回

lxn*_*ndr 32 html jquery document-body scrolltop

不确定是否还有另外一个问题,如果是这样我道歉并且请不要释放猎犬.

使用html5 doctype并在我的滚动监听器上执行快速console.log,告诉我scrollTop()值的值.我基本上这样做,所以当我滚动一个点时,我改变了一个元素的不透明度.我这样做是使用MVS解决方案而我无法将其推送到外部网站以便您可以查看.这是一个快速片段:

var opacity = 1;
var scrollTop = $('body').scrollTop();
if (scrollTop > 200) {
   opacity = 0.1;
}
$('#element).css('opacity', opacity);
Run Code Online (Sandbox Code Playgroud)

如果我在Chrome中滚动,我会得到一个console.log(scrollTop); 显示我想要的东西(即每次滚动100次),我的不透明度在我达到200个scrollTop后消失.如果我在FF和IE7 +中滚动,var每次滚动返回"0".如果我将$('body').scrollTop()更改为$('document').scrollTop(); 然后我在滚动上得到一个"null"返回.

有任何想法吗?谢谢!

小智 41

尝试使用 var scrollTop = $(document).scrollTop();


And*_*ins 17

$(window).scrollTop() 在Firefox和Chrome中都能正常运行.

要验证在chrome和firefox中运行以下jsfiddle:http://jsfiddle.net/RBBw5/6/

  • 它实际上是正确的答案.$(document).scrollTop()往往不起作用,取决于正文的大小或其他外部行为 (3认同)