2017-05-06 12 views
0

TweenMaxでアニメーションを作成しました。そのアニメーションは、親の幅を100%からゼロにアニメーション化します。私はお互いの隣に3つのdivがあり、それは下の画像に重なっています。今度は、それぞれのpreload divクラスが、前のクラスがトリガーされた後、数秒で開始されるようにしたいと思います。遅延TweenMax.toでアニメートする方法は?

私はsetTimeoutのようなものを試してみましたが、うまく動作しませんでした。 上記の達成方法を教えてください。

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

+0

1つずつ削除しますか? –

+0

はい。したがって、最初の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

ありがとうございます。これが私が達成したいことです。 1つのことは、逆の順序でアニメートすることも可能ですか?これは、レイアウトで要素を正しく配置するためにrtlを使用していたためです。 – Caspert

+0

あなたは 'toBeAnimated [currentAnimat]'を呼び出す前に 'toBeAnimated'を逆にする必要があります。 –

関連する問題