2011-08-02 3 views
0

순차적으로 다른 DIV에 애니메이션을 적용하고 싶습니다. JQuery가 코드의 중간에서 큐를 처리하도록하는 방법이 있습니까? 같은 : 난 당신이 .animate 함수에 콜백을 전달할 수 있습니다이 일부 재귀 부두 달성 할 수 있다는 것을 충분히 알고jquery가 콜백 함수없이 순차적으로 움직입니다.

for (var i = 0; i < myHugeNumber; i++){ 

    var divName = '#Div' + i; 
    $(divName).animate({"left": "-=50px"}, "slow"); 

    $.ProcessQueue() // Once finished animating, continue with FOR loop. 
} 

그러나 이것은 내 코드에서 재편성을 많이 필요합니다. 그리고 나는 완고하고 완고한 사람입니다. JQuery가 대기열을 즉시 처리하도록하는 빠르고 쉬운 방법이 있습니까?

+1

당신은 시간이 "느린"어디가 "의 setTimeout"을 사용할 수있는 콜백 (450 MS 내가 보라) * 내가 –

+0

@ 존 '$ (divName) .delay (450를 사용하지 않을 경우 * 내가) .animate ({ "left": "- = 50px"}, "slow"); ' 뿐만 아니라 잘 작동하는 것 같다. 여기서 흥미로운 접근법. – Derek

답변

0

이 코드는 콜백을 사용하는 것으로 알고 있지만 코드는 for 루프보다 간단합니다. 나는 그것을 밖으로 버릴 것이라고 생각했다.

var maxI = myHugeNumber; 
var curI = 0; 
startAnimation(); 

function startAnimation(){ 
    var id = '#Div' + curI; 
    $(id).animate({'left': '-=50px'}, 'slow', function(){ 
     curI++; 
     if(curI<maxI){ 
     startAnimation(); 
     } 
    }); 
} 
관련 문제