Timelineの使い方
導入編
Timelineは他のプラグインとは違ってGSAPに標準で搭載されている(GSAP Core)ので、GSAPを読み込んでしまえば使えます。Timelineを使わない場合
もし、このような複数のアニメーションを連続で実装したいとします。- 右に100px移動
- scaleで2倍に拡大しながら、時計回りに回転
- 元の位置に元の大きさに戻りながら戻る
gsap.to(".box",{
x:100
},0); //0秒後に作動
gsap.to(".box",{
scale: 2,
rotate: 90
},1); //1秒後に作動
gsap.to(".box",{
x:0,
scale: 1,
rotate: 0
},3); //3秒後に作動
Timelineを使った書き方
先程のアニメーションをTimelineを使って書き直してみます。var tl = gsap.timeline()
tl.to(".box", {
x: 100
})
.to(".box", {
scale: 2,
rotate: 90
})
.to(".box", {
x: 0,
scale: 1,
rotate: 0
});
- それぞれのアニメーションをセミコロン(;)で分けない
- Timelineの変数は一番最初だけ必要、あとは書かなくていい
もしアニメーション順番を変えたい場合
先程話したように、Timelineの上から順にアニメーションが作動するので順番を入れ替えればいいだけです。var tl = gsap.timeline()
tl.to(".box", {
x: 100
})
.to(".box", { //元々3番目
x: 0,
scale: 1,
rotate: 0
})
.to(".box", { //元々2番目
scale: 2,
rotate: 90
});
Timelineの最大の特徴 タイミングを設定する
例えば次のアニメーションを前のアニメーションが完了した3秒後に作動させたいとします。もしTimelineを使わなければ、2つのアニメーションのタイミングを変える必要があります。ですが、Timelineを使えば1箇所だけ変更するだけで間に合います。では基本の使い方をご紹介します。 1 ○秒後にアニメーションを作動させたい。tl.to(".box", {x: 100}, 3) //3秒後に作動
.to(".box", {y: 100}, 1) //1秒後に作動
tl.to(".box", {x: 100})
.to(".box", {y: 100},"+=3") //前のアニメーション完了後、3秒後に作動
tl.to(".box", {x: 100}) // 1
.to(".box", {y: 100},"douji") // 2
.to(".box", {rotate: 180},"douji") // 2
.to(".box", {x: 200}) // 3
.to(".box", {y: 400},"douji") // 2
tl.to(".box", {x: 100})
.to(".box", {y: 100},"douji")
.to(".box", {rotate: 180},"douji+=4") // douji作動後4秒後
.to(".box", {x: 200})
.to(".box", {y: 400},"douji-=2") // douji作動後2秒前
tl.to(".box", {x: 100})
.to(".box", {y: 100},"<") //上のアニメーションと同時に作動
tl.to(".box", {x: 100})
.to(".box", {y: 100},"<5") //上のアニメーションと同時に作動するが5秒後
var tl = gsap.timeline({repaet: -1 });
tl.repeat(3)
See the Pen Becre8 – GSAP TImeline – by Shunya (@shunyadezain) on CodePen.
これからもGSAPのチュートリアルをご紹介できたらと思います。 ではまた! おすすめ本リンク