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()
就开始正常工作了。
我仍然想在我的页面上使用globaloverflow-x:hidden
属性,所以我只是将其设置为body
元素。中的投诉是2到3年前的。我在使用scrollTop
cross-browser时没有遇到任何问题。最近三个月前,我就遇到了<代码>'html,body'
似乎最适合我。hrm,文档和窗口在chrome+firefox中工作,猜猜什么在IE中工作^^<代码>$(文档).scrollTop()在Chrome32(以及所有其他现代浏览器)中为我工作