我正在网站上工作:
正文有几个背景图像,这些图像在滚动时更新如下:
$(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,有些人会遇到这个问题。我相信我已经正确地宣布了这个:<!DOCTYPE html>
答案 0 :(得分:0)
scrollTop
jQuery方法has been known to be problematic。
根据浏览器的不同,您可能需要使用$('html, body').scrollTop()
或$(document).scrollTop()
或$(window).scrollTop()
。
答案 1 :(得分:0)
对我来说,问题是overflow
元素上的任何html
属性。
删除它的那一刻,我的.scrollTop()
开始正常工作。
我仍然需要页面上的全局overflow-x: hidden
属性,因此我只在body
元素上进行了设置。