Javascript $(“body”).scrollTop()不';t在safari中更新

Javascript $(“body”).scrollTop()不';t在safari中更新,javascript,jquery,Javascript,Jquery,我正在一个网站上工作: 主体有几个背景图像,这些图像在滚动条上更新,如下所示: $(document).ready(function(){ $(document).scroll(function(){ var scrollfactor=$("body").scrollTop()*0.2; var centerscrollpos =scrollfactor+613; var docheight = $(document).height()

我正在一个网站上工作:

主体有几个背景图像,这些图像在滚动条上更新,如下所示:

$(document).ready(function(){

    $(document).scroll(function(){
        var scrollfactor=$("body").scrollTop()*0.2;
        var centerscrollpos =scrollfactor+613;
        var docheight = $(document).height();
        var windowheight = $(window).height();
        var bottompos = (docheight-980)-((docheight-windowheight)*0.2)+scrollfactor;
        var scrollpos = 'center '+scrollfactor+'px,center '+bottompos+'px, center '+ centerscrollpos+'px,center 0px';
        $("body").css("background-position", scrollpos);
    });
});
<!DOCTYPE html>
很多计算,但重要的是创建了一个scrollpos,当你滚动时,它会改变背景的位置,从而产生视差效果。它在chrome中工作得很好,但在firefox中,变量scrollfactor(假定获取当前滚动位置)不会更新

另外,有些人由于缺少正确的doctype而出现此问题。我相信我这样说是正确的:

$(document).ready(function(){

    $(document).scroll(function(){
        var scrollfactor=$("body").scrollTop()*0.2;
        var centerscrollpos =scrollfactor+613;
        var docheight = $(document).height();
        var windowheight = $(window).height();
        var bottompos = (docheight-980)-((docheight-windowheight)*0.2)+scrollfactor;
        var scrollpos = 'center '+scrollfactor+'px,center '+bottompos+'px, center '+ centerscrollpos+'px,center 0px';
        $("body").css("background-position", scrollpos);
    });
});
<!DOCTYPE html>

滚动顶
jQuery方法


根据浏览器的不同,您可能需要使用
$('html,body').scrollTop()
$(document).scrollTop()
$(window).scrollTop()

对我来说,问题是
html
元素上的任何类型的
溢出
属性。 我一卸下它,我的
.scrollTop()
就开始正常工作了。
我仍然想在我的页面上使用global
overflow-x:hidden
属性,所以我只是将其设置为
body
元素。

中的投诉是2到3年前的。我在使用
scrollTop
cross-browser时没有遇到任何问题。最近三个月前,我就遇到了<代码>'html,body'
似乎最适合我。hrm,文档和窗口在chrome+firefox中工作,猜猜什么在IE中工作^^<代码>$(文档).scrollTop()在Chrome32(以及所有其他现代浏览器)中为我工作