2017-05-06 10 views
0

TweenMax를 사용하여 div를 100 % 너비의 부모에서 0으로 애니메이션하는 애니메이션을 만들었습니다. 서로 옆에 세 개의 div가 있으며 아래에 이미지가 겹칩니다. 이제는 각각 preload div 클래스가 이전 클래스가 트리거 된 후 몇 초간 시작되기를 바랍니다.TweenMax.to 지연으로 애니메이션하는 방법?

나는 setTimeout과 같은 것을 시도하지만, 작동시키지 못했습니다. 어떻게하면 좋을까요?

CodePen는 : https://codepen.io/anon/pen/aWVZXL

+0

하나씩 삭제 하시겠습니까 ....? –

+0

예. 따라서 첫 번째 div가 애니메이션으로 끝나면 다음 div가 시작되거나 애니메이션의 중간에있을 때 다른 div가 시작됩니다. @MadhuMagar – Caspert

답변

0

나는 스크립트를 변경했습니다. 원하면 리팩토링하십시오.

$(document).ready(function() { 
var toBeAnimated; 
var currentAnimat = 0; 

$('.link').click(function() { 
    toBeAnimated = $(".preloader"); 
    console.log('lets start animation'); 
    preload(toBeAnimated[currentAnimat]); 
}); 

function preload(elem) { 
    var elem = $(elem); 
    var width = elem.outerWidth(); 
    // Tween out preload div 
    TweenMax.to(elem, 1.4, { 
     width: 0, 
     right: 0, 
     onComplete: function() { 
      elem.remove(); 
      currentAnimat++; 
      if(currentAnimat >= toBeAnimated.length) { 
       console.log('Animation done'); 
      } else { 
       preload(toBeAnimated[currentAnimat]); 
      } 
     } 
    }); 
} 

});

+0

고맙습니다. 이것이 내가 원하는 것입니다. 한 가지 방법은 역순으로 애니메이션을 적용하는 것입니다. 이것은 레이아웃에서 요소를 올바르게 배치하기 위해 rtl을 사용했기 때문입니다. – Caspert

+0

당신은 당신이'preBuilder (toBeAnimated [currentAnimat])'를 호출하기 전에'toBeAnimated'를 되돌려 야 할 수 있습니다. –