2011-03-28 53 views
2

我想创建一个视差效果使用window.onscroll和scrollTop,但我一直运行到渲染问题,看起来像我在视口渲染后收到onscroll。正如你可以看到from this example(附带代码),箱子的运动是不稳定的和波涛汹涌。渲染问题与视差效果

该行为在所有基于WebKit的浏览器和FireFox中都是相同的。

的JavaScript

$(document).ready(function() { 
    $('.box').each(function() { 
    $(this).data('y', $(this).offset().top); 
    }); 
}); 

$(window).scroll(function() { 
    var scroll = $(this).scrollTop(); 

    $('.box').each(function() { 
    var parallax = $(this).data('parallax'); 

    if (parallax) { 
     var y = $(this).data('y'); 
     var offset = (scroll - y) * parallax; 

     $(this).css('-webkit-transform', 'translateY(' + offset + 'px)'); 
    } 
    }); 
}); 

标记

<div class="red box">Lorem ipsum dolor sit amet.</div> 
<div class="green box" data-parallax="0.4">Consectetur adipiscing elit.</div> 
<div class="blue box" data-parallax="0.3">Nam consectetur dolor.</div> 
+0

外表光滑我在Chrome 11和FF 4 - 但是与第一(红色)div的例外,我看不到太多的视差效果。你用'setInterval'而不是听滚动事件试过吗? – RoToRa 2011-03-28 10:09:48

+0

你在什么操作系统上?在OSX SL上有一个相当明显的急动。 – 2011-04-02 13:49:51

+0

Windows 7 ...... – RoToRa 2011-04-02 20:34:07

回答