不确定是否还有其他问题,如果是的话,我道歉并且请不要释放猎犬。
使用html5 doctype并在我的滚动侦听器上执行快速console.log,告诉我scrollTop()值的值。我基本上这样做,所以当我滚动一个点时,我改变了一个元素的不透明度。我这样做是使用MVS解决方案而我无法将其推送到外部网站以便您可以查看。这是一个快速摘录:
var opacity = 1;
var scrollTop = $('body').scrollTop();
if (scrollTop > 200) {
opacity = 0.1;
}
$('#element).css('opacity', opacity);
如果我在Chrome中滚动,我会收到一个console.log(scrollTop);显示我想要的东西(即每次滚动100次),我的不透明度在我达到200个scrollTop后消失。如果我在FF和IE7 +中滚动,var每次滚动返回“0”。如果我将$('body')。scrollTop()更改为$('document')。scrollTop();滚动时我得到一个“空”回报。
有什么想法吗? 谢谢!
答案 0 :(得分:41)
尝试使用var scrollTop = $(document).scrollTop();
答案 1 :(得分:17)
$(window).scrollTop()
在Firefox和Chrome中均可正常运行。
要验证,请在chrome和firefox中运行以下jsfiddle:http://jsfiddle.net/RBBw5/6/
答案 2 :(得分:1)
在怪异模式下对IE9感到沮丧之后,我发现$('body').scrollTop()
可以在IE9,Chrome 32和Firefox 26中可靠地运行。
答案 3 :(得分:0)
使用var scrollTop = $('html').scrollTop();
适用于FireFox
你需要嗅探浏览器(我知道,功能检测,而不是嗅探,但你无法检测到这一点),因为它无法在Chrome中运行,请尝试此处:
Easiest/Lightest Replacement For Browser Detection jQuery 1.9?