blurを使用してぼかし効果で消えたり現れたりするコンポーネントのサンプルを作りました。
使用ライブラリ
使用したライブラリはFramer Motionというアニメーションライブラリです。
参考リンク
Motion – A modern animation library for JavaScript and React
Motion is built on native browser APIs for a tiny filesize and superfast performance. It uses hardware acceleration for smooth and eco-friendly animations. Prev…
Framer MotionはChakra UIをインストールすると依存パッケージとしてインストールされます。Chakra UIを使用している場合は特に追加インストールすることなく使用できます。
実装
サンプルとしてボタン押下で表示・非表示が切り替わるように作成しました。
コンポーネント表示時にアニメーションさせることは特に難しいことはありませんが、コンポーネント非表示時(アンマウント時)にアニメーションを動作させるには以下が必要となります。
- アニメーション対象コンポーネントを
AnimatePresence
配下に配置する AnimatePresence
にはexitBeforeEnter
を指定するAnimatePresence
直下のコンポーネントで表示・非表示の状態が切り替わったことがわかるようにする(上記のコード例ではkeyに表示・非表示の状態を持たせて値が変わるようにしている)
最後に
そんなにアニメーションを実装する機会はなさそうですが、実装方法を知っておくだけでもいつか役に立つかも。
またなにか思いついたら備忘録として残していこうと思います。