gsapのTimelineの使い方
アニメーションを簡単にずらしたりつなげることができるgsapのTimelineの使い方を紹介します。
デモ
See the Pen
gsap timeline by Sosak (@Sosak2021)
on CodePen.
gsapのTimelineの使い方
const TL = gsap.timeline();
TL
.from('.img1', {autoAlpha: 0, y: -50, duration: 0.2})
.from('.img2', {autoAlpha: 0, y: -50, duration: 0.3})
.from('.img3', {autoAlpha: 0, y: -50, duration: 0.5})
.from('h1', {autoAlpha: 0, y: -50, duration: 0.5})
.from('p', {autoAlpha: 0, y: -50, duration: 1})
TLでもなんでも適当な変数名にgsapのtimeline()メソッドを格納します。
その変数を使ってメソッドをチェーンすることができます。
上の例では画像が3つ、それぞれ指定された順番に指定されているアニメーションを実行していきます。
ただしこれでは一つが終わった後にまた一つのアニメーションがスタートするのでぎこちない感じが残ります。
そこで前のアニメーションが残っている段階で他のものもスタートさせる方法があります。
アニメーションをカスケーディングさせる
See the Pen
gsap timeline cascading by Sosak (@Sosak2021)
on CodePen.
const TL = gsap.timeline();
TL
.from('.img1', {autoAlpha: 0, y: -50, duration: 1})
.from('.img2', {autoAlpha: 0, y: -50, duration: 1}, '-=0.7')
.from('.img3', {autoAlpha: 0, y: -50, duration: 1}, '-=0.7')
.from('h1', {autoAlpha: 0, y: -50, duration: 1}, '-=0.7')
.from('p', {autoAlpha: 0, y: -50, duration: 1}, '-=0.7')
上に’-=0.7’を加えると、前のアニメーションが終わる0.7秒前にスタートさせることができます。
この値は自由に設定できるので、一番適切な値を調整しながら探していきます。
'+=0.2’とプラスの値にすれば、次のアニメーションの開始時期がより遅くなります。
相対値を使ってタイミングを調整する
上の’-=0.7’というのも相対値ですし、下のように’<'や'>'を使うこともできます。
See the Pen
gsap timeline by Sosak (@Sosak2021)
on CodePen.
上のケースでは、3番目の’<'の指定によって、2番目の写真と同じタイミングでアニメーションがスタートします。
'>'だとデフォルトと同じ動きをします。
このように、相対値や絶対値を使うことで、アニメーションの細かいタイミングを調整することができます。