Jquery scrollTop仅适用于Firefox

Jquery scrollTop仅适用于Firefox,jquery,webkit,background-image,parallax,scrolltop,Jquery,Webkit,Background Image,Parallax,Scrolltop,本质上,我试图通过根据滚动的距离设置div背景位置的动画来实现视差效果。这在Firefox中非常有效,但看起来基于webkit的浏览器不起作用。也就是说,所有其他浏览器都不会返回正文的scrollTop()值。我试过“文档”、“窗口”、“正文、html”等,但其他都不起作用 这是小提琴: 以下是JS: $(document).ready(function(){ $('body').scroll(function(){ var scrolled = $('body').sc

本质上,我试图通过根据滚动的距离设置div背景位置的动画来实现视差效果。这在Firefox中非常有效,但看起来基于webkit的浏览器不起作用。也就是说,所有其他浏览器都不会返回正文的scrollTop()值。我试过“文档”、“窗口”、“正文、html”等,但其他都不起作用

这是小提琴:

以下是JS:

$(document).ready(function(){
    $('body').scroll(function(){
        var scrolled = $('body').scrollTop();
        scrolled*=-0.4;
        $('#container').css('background-position','0px ' + scrolled + 'px');  
    });
});
以及HTML:

<div id='container'></div>
这应该做到:

$(document).ready(function(){
    $(window).scroll(function(){
        var scrolled = $(document).scrollTop();
        scrolled*=-0.4;
        $('#container').css('background-position','0px ' + scrolled + 'px');  
    });
});
下面是一个示例,展示了它的最基本形式:

它在Chrome 32+、Firefox 26+和Safari 7+中工作。

备选答案


$(document).on('scroll')是否在文档中滚动任何内容时触发,例如DIV上的溢出?可能。我会检查的。@Ashley Medway谢谢你的回答-它现在在Chrome中工作,但在Firefox中不工作,也许一些有条件的浏览器可以解决这个问题?@Drew Baker在JSFIDLE中工作得很好,但恐怕在Chrome、Safari或Firefox中不工作。请直接在我的回答中添加注释。我用一个链接更新了它,显示它在野外确实有效。你解决了这个问题吗?我的回答正确吗?芬,你还在研究这个吗?你能接受答案吗?很抱歉。谢谢你的链接。它在Safari和Chrome中工作,但我在Firefox上运气不佳。有什么想法吗?好的,调整了scrollTop选择器为document,现在它可以在所有3个页面上运行。非常感谢。现在你的站点确实可以工作了,但是我正在工作的站点仍然不能-我应该共享一个链接吗?是的,如果可以的话,共享链接。嗨,这里是链接:。看起来css文件'foundations.css'是罪魁祸首,因为如果删除右边的div,右边的div开始工作,左边的div停止工作,尽管我不知道为什么。到目前为止,左边的div只在Firefox中有效。关于为什么会这样,你有什么建议吗?
$(document).ready(function(){
    $(window).scroll(function(){
        var scrolled = $(document).scrollTop();
        scrolled*=-0.4;
        $('#container').css('background-position','0px ' + scrolled + 'px');  
    });
});
$(document).ready(function(){
    $(document).on("scroll", function () {
        var scrolled = $('body').scrollTop();
        scrolled*=-0.4;
        $('#container').css('background-position','0px ' + scrolled + 'px');  
    });
});