忘れないように記録しとこ

カバの樹

Vue.jsで動画も対応したライトボックスぽい機能を実装する「vue-silentbox」

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/vue-silentbox@2.3.2/dist/vue-silentbox.umd.min.js"></script>

gitリポジトリは以下から取得できます。

 

導入手順

管理人が行った、動作確認サンプルを実装するために、以下の手順でソースコードを導入していきます。
このサンプルでは、イメージビューアを実装します。

 

step.1 ライブラリの呼び出し

まずライブラリを呼び出す為に、以下の2通りのケースで呼び出します。

ES6等で実装する場合

import VueSilentbox from 'vue-silentbox'

UMDで実装する場合

const VueSilentbox = window['VueSilentbox'].default;

 

step.2 Vueインスタンスを設定


上記で取得した  VueSilentboxVue.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>

 

サンプル

今回のソースを実際に触って確認できるようにデモを用意しました。

 

さいごに

ライトボックスにインスパイアされて開発された、動画にも対応しているビューアライブラリでした。

今日はこの辺でー

 

  • B!