Javascript　初めてのGSAPアニメーションの使い方　その7　TimelineMaxのラベルと同期処理

前回の記事はこちら

[Javascript　初めてのGSAPアニメーションの使い方　その6　TweenMax.setとTimelineMaxプロパティ
](https://qiita.com/fumiya0414/items/09605bc01683e57efa76)

今回はTimelineMaxのラベルと同期処理について説明します。

htmlは以下です。CSSで配置と色は調整しています。

```html
    <div class="row row1">
      <div class="column col1">
        <p>パネル 1 (.circle)</p>
        <div class="circle shape"></div>
      </div>
      <div class="column col2">
        <p>パネル 2 (.square)</p>
        <div class="square shape"></div>
      </div>
      <div class="column col3">
        <p>パネル 3 (.rectangle)</p>
        <div class="rectangle shape"></div>
      </div>
    </div>
```
[![Image from Gyazo](https://i.gyazo.com/96414d4af474034bdc67f33b87e4279e.png)](https://gyazo.com/96414d4af474034bdc67f33b87e4279e)

丸(.circle)→正方形(.square)→長方形(.rectangle)の順にアニメーションを設定します。
それぞれx軸方向へ100px動かします。

```js
const tlshapes = new TimelineMax();
tlshapes.to('.circle', 1, { x: 100 })
.to('.square', 1, { x: 100})
.to('.rectangle', 1, { x: 100});
```

[![Image from Gyazo](https://i.gyazo.com/99aedecccc70902643b316b88ee78982.gif)](https://gyazo.com/99aedecccc70902643b316b88ee78982)

このとき個々の要素の動く順番やタイミングをコントロールするために
任意の名前でラベルが設定できます。

circleRectangleラベルで、丸が動くタイミングで長方形を一緒に動かします。

```js
const tlshapes = new TimelineMax();
tlshapes.to('.circle', 1, { x: 100 }, 'circleRectangle')
.to('.square', 1, { x: 100})
.to('.rectangle', 1, { x: 100},'circleRectangle');

```
[![Image from Gyazo](https://i.gyazo.com/3ec116ea8b566bde90d93381ab1d1834.gif)](https://gyazo.com/3ec116ea8b566bde90d93381ab1d1834)

次にsquareRectangleラベルで正方形と長方形を一緒に動かします。

```js
const tlshapes = new TimelineMax();
tlshapes.to('.circle', 1, { x: 100 })
.to('.square', 1, { x: 100},'squareRectangle')
.to('.rectangle', 1, { x: 100},'squareRectangle');

```

[![Image from Gyazo](https://i.gyazo.com/62b7d85b237560c2b53aacc7c71639e5.gif)](https://gyazo.com/62b7d85b237560c2b53aacc7c71639e5)

ラベルの中に秒数を設定すると同期処理の中で時間差をつけることができます。

```js
const tlshapes = new TimelineMax();
tlshapes.to('.circle', 1, { x: 100 })
.to('.square', 1, { x: 100},'squareRectangle')
.to('.rectangle', 1, { x: 100},'squareRectangle+=0.25');
```
[![Image from Gyazo](https://i.gyazo.com/f77bbb531a1259df74d716915677cef3.gif)](https://gyazo.com/f77bbb531a1259df74d716915677cef3)

正方形の動き出しから0.25秒後に長方形が動き出します。

マイナス数値を入れることで動き出しを早めることもできます。

```js
const tlshapes = new TimelineMax();
tlshapes.to('.circle', 1, { x: 100 })
.to('.square', 1, { x: 100},'squareRectangle')
.to('.rectangle', 1, { x: 100},'squareRectangle-=0.25');
```

[![Image from Gyazo](https://i.gyazo.com/793dedb1935b2aed2779f2917a52136a.gif)](https://gyazo.com/793dedb1935b2aed2779f2917a52136a)

長方形は正方形と同期していますが0.25秒早く動き出します。

ラベルはつけずに秒数のみ調整することも可能です。

```js
const tlshapes = new TimelineMax();
tlshapes.to('.circle', 1, { x: 100 })
.to('.square', 1, { x: 100}, '-=0.5')
.to('.rectangle', 1, { x: 100}, '-=0.5');
```

[![Image from Gyazo](https://i.gyazo.com/bf28b3b641e7e45ad8a06e0f8e4e50fb.gif)](https://gyazo.com/bf28b3b641e7e45ad8a06e0f8e4e50fb)

正方形と長方形の動き出しを-0.5秒することで滑らかに動かしています。

数値のみを指定するとアニメーションの中で絶対値の秒数を指定できます。

```js
const tlshapes = new TimelineMax();
tlshapes.to('.circle', 1, { x: 100 })
.to('.square', 1, { x: 100},3)
.to('.rectangle', 1, { x: 100},3);

```

[![Image from Gyazo](https://i.gyazo.com/ae96e0e1276a22b64dbd097ecadad65a.gif)](https://gyazo.com/ae96e0e1276a22b64dbd097ecadad65a)

アニメーション開始から３秒経過後に正方形と長方形が動き出します。

次回はTimeline制御と開始位置制御です

[Javascript　初めてのGSAPアニメーションの使い方　その8　Timeline制御と開始位置制御](https://qiita.com/fumiya0414/items/35f410b14302c2629879)