はじめに
Svelte.jsではsvelte/transition
モジュールを取り込むことによって、アニメーションを使うことができる。
今回はさくっと使うことができる5つに絞ってそれぞれどのような動きになるのか、簡単に見てみる。
svelte/transition一覧
fade
名前の通りフェードアニメーションです。
svelte/transition
をインポートする際にfade
を指定することで使うことができる。
そしてfadeしたい部分にtransition:fade
を追加する。※後に続くアニメーション紹介では省略します。
<script>
import { fade } from 'svelte/transition';
...
<p transition:fade>Hi Fade!</p>
さらにfade
にdelay
パラメータを渡すことによって、fadeを遅延させることが可能です。
<p transition:fade="{{delay: 250}}">Hi Fade!</p>
※デフォルトdelay値は0
blur
blurはfade
と少し似ているがぼかしながら消えていくアニメーション。
<script>
import { blur } from 'svelte/transition';
</script>
...
<p transition:blur>Hi Blur!</p>
また、delay
意外にもduration
、opacity
、amount
といったパラーメーターがあります。
試しにopacity
を500にしたとき
<p transition:blur="{{opacity: 500}}">Hi Blur! </p>
先ほどよりも不透明度が強く感じる。長く見てると気持ち悪くなりそう、、
fly
flyはパラメーターx
,y
のいずれかに数値を設定することでその方向に飛ばすことができる。
ちなみにパラメーターを指定しないとfade
と同じような動きになった。
x
を200で指定したとき
<script>
import { fly } from 'svelte/transition';
</script>
...
<p transition:fly="{{x: 200}}">Hi Fly!</p>
flyのパラメーターなしのとき
ちなみに先ほど言ったx
もy
も指定しないとき
やはりfade
と同じなような気がするのでfly
を使うときは注意が必要そう。
slide
slide
は指定した要素をスライドさせるアニメーション
<script>
import { slide } from 'svelte/transition';
</script>
...
<p transition:slider>Hi Slide!</p>
scale
scale
は横方向にサッと消えていくようなアニメーション
<script>
import { scale } from 'svelte/transition';
</script>
...
<p transition:scaler>Hi Scale!</p>
ちなみにですが、duration
パラメーターを使って数値を低く設定すると早く消えます。
duration
を100に設定したとき
最後に
その他にもSVGと一緒に使うdraw
といったものもあるので、気になる方は公式ドキュメントをみるといいかもしれません。