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 データをimport
lottie.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
などのイベントへハンドラを設定可能。利用可能なイベントは以下。
onComplete
onLoopComplete
onEnterFrame
onSegmentStart
loadAnimation
の戻り値(インスタンス)に対して、onComplete = func
で設定。
1 | import lottie from 'lottie-web'; |
その他 addEventListener
でも設定できる(っぽい。こっちは動作未確認)
complete
loopComplete
enterFrame
segmentStart
config_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 データをimport
lottie.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 で、初期値の設定と選択状態のクリア