どうも!かけちまるです!
要素を順番にアニメーションさせる。
jQueryだと少し面倒くさいのです。
GSAPを使えば少ない記述で簡単にできてしまいます。
ちなみにstagger(スタッガー)はプロパティです。
この記事では、
がわかります。
JavaScriptgsap.fromTo('.box', .5, { y: 30, autoAlpha: 0 }, { y: 0, autoAlpha: 1, repeat: -1, stagger: { each: .5, } })
GSAPトゥイーンの中にstagger
プロパティを書き、その中にオプションを書いていく感じです。
オプション | 設定値 | 説明 |
---|---|---|
amount | 0.1 [秒数] |
アニメーション間隔の合計時間を指定する。 例.) amount が1でアニメーション要素が10個の場合、間隔は0.1です。 |
each | 0.1 [秒数] |
間隔の時間を指定する。 |
from | ‘start’,’center’,’end’,’edges’,’random’,または数値 | アニメーションをどこから開始するか指定 |
grid | [0,10] または ‘auto’ [Array | ‘auto’] |
要素がグリッドに視覚的に表示されている場合に使用できます。 |
axis | ‘x’,’y’ | gridを使用しているときに使用可能。 アニメーション方向の軸を指定できる。 |
ease | 公式サイト参照 | イージングを指定する。 |
オプションについてもう少し詳しく解説します。
アニメーション間隔の合計時間を指定する。
例.) amount
が1でアニメーション要素が10個の場合、間隔は0.1です。
固定の時間を指定したい場合は代わりにeach
を指定します。
JavaScriptgsap.fromTo('.box', .5, { y: 30, autoAlpha: 0 }, { y: 0, autoAlpha: 1, repeat: -1, stagger: { amount: 1 } })
アニメーション間隔の時間を決めることができます。
合計時間を指定したい場合は代わりにamount
を指定します。
JavaScriptgsap.fromTo('.box', .5, { y: 30, autoAlpha: 0 }, { y: 0, autoAlpha: 1, repeat: -1, stagger: { each: .5 } })
アニメーションをどこから開始するか指定
設定値 | 説明 |
---|---|
‘start’ | 最初の要素から再生 |
‘center’ | 真ん中の要素から再生 |
‘edges’ | 端の要素から再生(両端から中央に向かって) |
‘end’ | 最後の要素から再生 |
‘random’ | ランダムな順番で再生 |
grid
を使う場合は配列で指定します。
例えば、中央であれば[0.5,0.5]
、右上隅であれば[1,0]
という感じに指定できます。
JavaScriptgsap.fromTo('.box', .5, { y: 30, autoAlpha: 0, }, { y: 0, autoAlpha: 1, repeat: -1, stagger: { from: 'start', each: .5 } });
要素がgrid状に配置されている時に中央から広がるようにアニメーションさせたいときに使えます。'auto'
に設定するとfrom
で指定した位置から広がるようにアニメーションできます。
[0,10]
のように配列で指定すると0〜10個目ずつを1セットでアニメーションさせていくイメージでしょうか。
※あまり自信がないので間違っていたらお問い合わせかTwitterのDMで教えてください🙇♂️
JavaScriptgsap.fromTo('.box', .5, { autoAlpha: .5 }, { autoAlpha: 1, repeat: -1, stagger: { each: .5, grid: 'auto', from: 'center' } }) gsap.fromTo('.box', .5, { autoAlpha: .5 }, { autoAlpha: 1, repeat: -1, stagger: { each: .5, grid: [0, 10], from: 'start' } })
grid
を指定しているときに使用できるオプションです。
grid
を指定するとx
軸とy
軸方向に広がるようにアニメーションしますが、axis
を指定するとx
軸かy
軸のどちらかに方向を絞ることができます。
JavaScriptgsap.fromTo('.box', .5, { autoAlpha: .5 }, { autoAlpha: 1, repeat: -1, stagger: { each: .5, grid: 'auto', from: 'center', axis: 'y' } })
イージングを指定できます。
デフォルト値は'none'
です。
ease
は、stagger
のイージングなので、each
の秒数が分散するイメージです。stagger
の外でease
を指定しましょう。指定できる値は、
があります。
それぞれに特徴があります。
さらに、power04.out
のようにin
,inOut
,out
をつけたり、back.out(1.7)
のように数値を設定できるものもあります。
各イージングの特徴は、公式サイトが直感的でわかりやすいのでオススメです。
JavaScriptgsap.fromTo('.box', .5, { y: 30, autoAlpha: 0 }, { y: 0, autoAlpha: 1, repeat: -1, stagger: { each: .5, ease: 'power4.out' } }) gsap.fromTo('.box', .5, { y: 30, autoAlpha: 0 }, { y: 0, autoAlpha: 1, repeat: -1, ease: 'power4.out', stagger: { each: .5 } })
おわり
フィードバックを送信
記事についてのフィードバックはTwitterかお問い合わせフォームから受け付けております。