2011-03-28 3 views
2

window.onscroll과 scrollTop을 사용하여 시차 효과를 만들려고하지만 뷰포트가 렌더링 된 후 onscroll을받는 것처럼 보이는 렌더링 문제가 계속 발생합니다. from this example (코드가 첨부되어 있음)을 볼 수 있듯이 상자의 움직임이 불규칙하고 고르지 않습니다.시차 효과로 렌더링 문제가 발생했습니다.

이 동작은 모든 WebKit 기반 브라우저와 FireFox에서 동일합니다. 그것은 미리 만들어진 하나하지 "다시 발명"바퀴를 사용하여 가치가 있는지

자바 스크립트

$(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 나에게 부드러운 보이는 -하지만 첫 번째 (적색) 사업부를 제외하고, 나는 시차 많은 효과를 볼 수 없습니다. scroll 이벤트를 듣지 않고'setInterval'을 시도해 보셨습니까? – RoToRa

+0

어떤 OS를 사용하고 있습니까? OSX SL에는 눈에 잘 띄지 않습니다. –

+0

Windows 7 ...... – RoToRa

답변

관련 문제