2012-07-13 33 views
4

我有以下代码:Jquery.css执行上IE和Webkit(铬,野生动物园)但Firefox不需要的闪烁效果是确定

$(document).ready(function(){ 
    $(window).scroll(function(){  
     Topo = $(window).scrollTop(); 
     ObjScrollASoda.css({ 
      'marginTop' : (Topo - 800)+'px' 
     }); 
    }); 
}); 

(注:ObjScrollASoda是用于罐的jquery对象)

这里是一个小提琴复制它由特鲁法提出问题: http://jsfiddle.net/VcvJe/1/

在蓝色的部分,有一个蓝色的罐,将“滚动”与网页制作的视差般的效果。这就是问题所在,因为我只是在用户滚动页面的时候设置了CSS,而只在Chrome(以及其他Webkit浏览器)中设置了CSS,所以发生闪烁效果(不需要)。我注意到它不会在Firefox中发生。有没有人知道如何避免这种“闪烁”效应?

这里解释更好的视频正在发生的事情: http://www.youtube.com/watch?v=SqDmOx6XY-M

(对不起,我的英语)

+2

+1视频:) – Trufa 2012-07-13 20:03:20

+0

如果你想,我会尝试建立一个用的jsfiddle作为一个例子,很容易在... – Trufa 2012-07-13 20:05:57

+1

这里是我的HTTP一个类似的例子来测试://的jsfiddle .net/VcvJe/1/ – Trufa 2012-07-13 20:14:33

回答

3

我看你YouTube影片,最好的方法是设置position:fixed时不移动阿祖尔可以或设置position:absolute移动时它。

也就是说,这个SO Member's Answer创建了一个简单的插件用.scrollTop();方法做到这一点。

同样的SO问题页面还有很多其他有用的答案。

参考:jsFiddle with Azul Can for Chrome

认为的jsfiddle没有如见于地址栏访问编辑页面/show/

0

也许我不完全理解的问题,但它听起来像你想的能保持它在那里就像用户向下滚动页面一样。我认为您所描述的闪烁效果是由于用户滚动时重新定位罐所致。

会使用position: fixed作为可接受的选择吗?演示请参阅http://jsfiddle.net/VcvJe/8/

对于固定的位置,该元素永远不会重新定位,因此没有闪烁。但是,它不会在IE < 7中工作,因为不支持position: fixed