GSAPのScrollTriggerを使って、スクロールに合わせて円が大きくなるアニメーションを実装したのですが…。大きくした後小さく戻したい!
大きくするアニメーションと小さくするアニメーションをつなげるにはどうすればいいか、数日躓きましたが、ようやく方法が分かったので記録。
失敗例
まず最初は、通常通り繋げてみました。
gsap.to('.target', {
width: '150vw',
height: '150vw'
});
gsap.to('.target', {
width: 0,
height: 0
});
これでは最後の一つだけが実行されます。
タイムラインも試してみましたが、ダメでした。
gsap.timeline('.target', {
width: '150vw',
height: '150vw'
}).to('.target', {
width: 0,
height: 0
});
最後のアニメーションが最初のアニメーションを上書きしているみたいです。
成功例
keyframesで繋げる
正しい方法は、keyframesで繋げる方法です。
gsap.to('.target', {
keyframes: [
{ width: '150vw', height: '150vw' },
{ width: 0, height: 0}
]
});
繋げたいオブジェクトをkeyframesの配列に格納します。カンタン!
これで、無事大きくなって小さくなるアニメーションが実装できました。