2012-03-23 222 views
1

有什么办法让这个简单的jQuery动画不闪烁? http://jsfiddle.net/v3DVf/6/JQuery动画闪烁

+0

你是什么意思闪烁?它不会为我闪光 – 2012-03-23 18:43:55

+0

我想它依赖于浏览器。我正在运行Chrome,它闪烁的时候,如果我滚动得太快... – 2012-03-23 18:45:04

+0

我刚刚试过IE浏览器,这真的很糟糕... – 2012-03-23 18:48:38

回答

4

这可能是因为你滚动速度太快,jQuery来计算一切。这似乎帮助:

$(window).scroll(function() { 
    var scrollTop = $(window).scrollTop(); 
    $('#left').stop().animate({ 
     top: (300 - (0.5 * scrollTop)) 
    }, 350); 
    $('#right').stop().animate({ 
     top: (300 - (0.2 * scrollTop)) 
    }, 350); 
});​ 

这就是从停止功能缓存scrollTop的值,而不是重新计算,并省略了(真正的,真实的)。

编辑:此外,摆脱#container css电话,只是使它position: fixed

+0

是的。在使用变量并将#container设置为固定值之间,似乎闪烁的问题已解决。谢谢! http://jsfiddle.net/v3DVf/10/ – 2012-03-23 19:05:14

+0

实际上,根本没有必要使用容器:http://jsfiddle.net/v3DVf/11/ – 2012-03-23 19:35:16

+0

更好,做得好 – 2012-03-23 19:36:02