目次
vue-silentboxとは
vue-silentboxは、ライトボックスにインスパイアされて開発された、動画にも対応しているビューアコンポーネントライブラリです。
.mp4、.ogg、.webm、.mov、.flv、.wmv、.mkvの動画達に対応しています。
もちろんブラウザで使用できる画像はすべて対応しています。
【動画サイズ:468KB】
環境
この記事は、以下の管理人の検証環境にて記事にしています。
vue.js | 2.6.10 |
vue-silentbox | 2.3.2 |
ライブラリの取得
ライブラリを取得するには、npm, CDNのどれか一つを使用します。
npm
npm install --save vue-silentbox
CDN
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-silentbox.umd.min.js"></script>
gitリポジトリは以下から取得できます。
導入手順
管理人が行った、動作確認サンプルを実装するために、以下の手順でソースコードを導入していきます。
このサンプルでは、イメージビューアを実装します。
step
1ライブラリの呼び出し
まずライブラリを呼び出す為に、以下の2通りのケースで呼び出します。
ES6等で実装する場合
import VueSilentbox from 'vue-silentbox'
UMDで実装する場合
const VueSilentbox = window['VueSilentbox'].default;
step
2Vueインスタンスを設定
上記で取得した VueSilentboxを
Vue.use
に取り込みます。
Vue.use(VueSilentbox); new Vue({ el: '#app', data: { images: [ { src: 'http://placekitten.com/800/600', description: 'Sunken dreams II. by Arbebuk', }, { src: 'http://placekitten.com/800/603', description: 'Tunnel View Sunrise by Porbital', }, { src: 'http://placekitten.com/800/602', description: 'description', } ] }, });
step
3テンプレートを準備
<clazy-load>
を画像の数だけ配置します。
今回のサンプルでは、ループを回してコンポーネントを配置します。
LazyLoadしたい画像やプログレスを<transition>
で囲んでやることで、イン・アウトの際にアニメーションを設定することが可能です。
サンプルはケバブケースで記載しています。
<div id="app"> <silent-box :gallery="images"></silent-box> </div>
サンプル
今回のソースを実際に触って確認できるようにデモを用意しました。
See the Pen Vue.jsで動画も対応したライトボックスぽい機能を実装する「vue-silentbox」 by カバの樹 (@kabanoki) on CodePen.dark
さいごに
ライトボックスにインスパイアされて開発された、動画にも対応しているビューアライブラリでした。
今日はこの辺でー