目次
v-scroll-lockとは
v-scroll-lockは(modal / lightbox / flyouts / nav-menus)等のスクロールを中断することなくボディのスクロールをロックするライブラリです。
インストール
以下のnpm、yarn、CDNを使ってインストールします。
npm
npm install v-scroll-lock --save
yarn
yarn add v-scroll-lock
CDN
<script src="https://cdn.jsdelivr.net/npm/v-scroll-lock@1.0.1/dist/v-scroll-lock.min.js"></script>
gitリポジトリは以下から取得できます。
https://github.com/phegman/v-scroll-lock
導入手順
1. ライブラリの取り込み
(1)webpack等の場合 ※モジュール版は未検証です。
import VScrollLock from 'v-scroll-lock'
(2)WEBページの場合
const VScrollLock = window['v-scroll-lock'].default;
2.メソッドを設定
Vue.use
を使ったグローバルで行う。
スクロールのロックをするために toggoleLook
の methods
を設定する。
Vue.use(VScrollLock) let app = new Vue({ el: '#app', data: { look: false }, methods: { toggoleLook:function(){ if(this.look == true) this.look = false; else this.look = true; } } });
3. テンプレートを準備
v-scroll-lock
プロパティをロック中もスクロールしたい箇所に設定する。
<div id="app"> <button @click="toggoleLook">Scroll Stop! [{{look}}]</button> <div class="box" v-scroll-lock="look"> <div class="box-area"> コンテンツ エリア </div> </div> </div>
サンプル
さいごに
ボディのスクロールをロックするライブラリでした。
正直、好きな要素のスクロールをロックできるものとばかり思っていたので、ボディのスクロールをロックするしかできなくて残念です。
場面によっては利用できるかもしれないので、覚えておくと良いかもしれません。
今日はこの辺でー