$(“body”)。scrollTop()在safari中不会更新

我在网站上工作:

http://beta.projektopia.se/

正文有几个背景图像,在滚动上更新如下:

$(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); }); }); 

大量的计算,但重要的是创建一个滚动条,滚动时应改变背景的位置,以创建视差效果。 它在chrome中工作得很好,但在firefox中,变量scrollfactor(假设获取当前滚动位置)不会更新。

ps,由于缺乏正确的doctype,有些人会遇到此问题。 我相信我已经正确地宣布它:

  

已知scrollTop jQuery方法存在问题 。

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