Vue.js で Lottie を使ったアニメーションを表示
はじめに
Vue.js で Lottie を使ったアニメーションを表示する方法。
Vue.js 向けのライブラリとして以下があるがメンテが止まってるようなので、(いまでも問題なく使えるかもしれないが)本記事では airbnb/lottie-web を使う。
- chenqingspring/vue-lottie
- Latest commit: 2018/04/02
- SuperbuffNL/lottie-vuejs
- Latest commit: 2019/08/27
※Latest commit は 2020/09/28 時点の確認結果
TL;DR
npm i lottie-webでインストールlottie-webと JSON データをimportlottie.loadAnimationを実行- Creative Commons License の要件、対象アニメーションのライセンスを要確認して対応
目次
環境・条件
1 | $ sw_vers |
詳細
セットアップ
npm i でインストール
1 | $ npm i lottie-web |
使い方
アニメーションは LottieFiles の Check okey done を使用。
JSON としてダウンロードして適当な場所に配置しておく、今回は src/assets 直下に配置した。
基本形
lottie-web と対象アニメーションデータ(JSON)を import して、lottie.loadAnimation を実行。
xxxx.vue
1 | <template> |
lottie.loadAnimation で使用可能なオプションは以下を参照。
イベントハンドラ
参考: Events
onComplete などのイベントへハンドラを設定可能。利用可能なイベントは以下。
onCompleteonLoopCompleteonEnterFrameonSegmentStart
loadAnimation の戻り値(インスタンス)に対して、onComplete = func で設定。
1 | import lottie from 'lottie-web'; |
その他 addEventListener でも設定できる(っぽい。こっちは動作未確認)
completeloopCompleteenterFramesegmentStartconfig_ready: when initial config is donedata_ready: when all parts of the animation have been loadeddata_failed: when part of the animation can not be loadedloaded_images: when all image loads have either succeeded or erroredDOMLoaded: when elements have been added to the DOMdestroy
1 | // たぶんこんな感じ |
その他・メモ
Creative Commons License について
利用にあたってライセンス表記が無いと問題になる(と思われる)ので、以下ページなどを参照。
- クリエイティブ・コモンズ・ライセンスとは | クリエイティブ・コモンズ・ジャパン
- クリエイティブ・コモンズとは〜著作権違反にならないための徹底解説!|ferret
- Creative Commons 4.0での変更点 - Qiita
まとめ
npm i lottie-webでインストールlottie-webと JSON データをimportlottie.loadAnimationを実行- Creative Commons License の要件、対象アニメーションのライセンスを要確認して対応
参考文献
関連記事
- Chart.js(vue-chartjs) でツールチップの表示内容を変更
- Vue.js で日本語変換での誤発火を抑止しつつ Enter キーで Submit
- Vue で子コンポーネントのメソッドをコールする
- apertureless/vue-chartjs でチャートの高さ(や幅、サイズ)を変更
- Chart.js で X軸, Y軸の値をカスタマイズ
- Chart.js(vue-chartjs) で凡例の一部を非表示にする方法
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア