2011-03-28 9 views
2

window.onscrollとscrollTopを使用して視差効果を作成しようとしていますが、ビューポートがレンダリングされた後にオンスクリーンが表示されているようなレンダリングの問題が発生しています。 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

クローム11とFF 4で私へのスムーズなルックス - しかし、最初の(赤)のdivを除いて、私は、視差効果の多くが表示されません。スクロールイベントをリッスンするのではなく、 'setInterval'を試しましたか? – RoToRa

+0

あなたはどのOSですか? OSX SLにはかなりのジャーキネスがあります。 –

+0

Windows 7 ...... – RoToRa

答えて

関連する問題