目次
vue-observe-visibilityとは
vue-observe-visibilityは、要素がウィンドウに表示・非表示されたことを検知できるライブラリです。
【動画サイズ:1.9MB】
環境
この記事は、以下の管理人の検証環境にて記事にしています。
vue.js | 2.6.10 |
vue-observe-visibility | 0.12 |
ライブラリの取得
ライブラリを取得するには、npm, CDNのどれか一つを使用します。
npm
npm install --save vue-observe-visibility
CDN
<script src="https://cdn.jsdelivr.net/npm/intersection-observer@0.12.0/intersection-observer.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-observe-visibility@1.0.0/dist/vue-observe-visibility.umd.min.js"></script>
gitリポジトリは以下から取得できます。
導入手順
管理人が行った、動作確認サンプルを実装するために、以下の手順でソースコードを導入していきます。
このサンプルでは、要素がウィンドウに表示・非表示されたことを検知します。
step.1 ライブラリの呼び出し
まずライブラリを呼び出す為に、以下の2通りのケースで呼び出します。
ES6等で実装する場合
import VueObserveVisibility from 'vue-observe-visibility'
UMDで実装する場合
const VueObserveVisibility = window['vue-observe-visibility'].default;
step.2 Vueインスタンスを設定
上記で取得した VueObserveVisibilityを
Vue.use
に取り込みます。
Vue.use(VueObserveVisibility); new Vue({ el: '#app', data:function() { return { prop: { callback: this.visibilityChanged, throttle: 0, intersection: { threshold: 0 }, } } }, methods: { visibilityChanged: function (isVisible, entry) { console.log('itemID:', entry.target.dataset.item); console.log('entry:', isVisible); } } });
step.3 テンプレートを準備
検知をしたい要素にv-observe-visibility
をプロパティとして設定します。
サンプルはケバブケースで記載しています。
<div id="app" > <div class="box"> <div v-for="i in 10" v-observe-visibility="prop" class="item" :key="i" :data-item="i"> <img src="https://unsplash.it/500?random" width="500" height="500"> </div> </div> </div>
サンプル
今回のソースを実際に触って確認できるようにデモを用意しました。
さいごに
要素がウィンドウに表示・非表示されたことを検知できるライブラリでした。
今日はこの辺でー