v-body-scroll-lock
Advanced tools
Weekly downloads
Readme
A Vue directive to lock the body from scrolling without stopping the target element from scrolling.
Uses the body-scroll-lock library (https://github.com/willmcpo/body-scroll-lock).
Works on mobile and tablet (iOS, Android) and desktop (Chrome, Firefox, Safari).
yarn add v-body-scroll-lock
npm i v-body-scroll-lock --save
Add v-body-scroll-lock
or v-bsl
(short version) to the element which you want to keep scrollable.
v-body-scroll-lock
and v-bsl
take a boolean
as an argument like v-body-scroll-lock="modalIsOpen"
If modalIsOpen
is true, body scroll lock will be applied to other elements except for the one which has v-body-scroll-lock="modalIsOpen"
For a more deep example checkout App.vue
in /src/App.vue
.
<template>
<div v-body-scroll-lock="modalIsOpen"
v-show="modalIsOpen"
class="modal">
<p>This is a modal! I am scrollable while the body is not!</p>
<button @click="closeModal">Close modal</button>
</div>
</template>
<script>
export default {
name: 'modal',
data() {
return {
modalIsOpen: false,
}
},
methods: {
closeModal() {
this.modalIsOpen = false;
},
openModal() {
this.modalIsOpen = true;
}
}
}
</script>
Reserves the with of the scrollbar and prevents the unpleasant flickering effect that can occur when locking the body scroll.
More info here.
To enable the reserveScrollBarGap
option add :reserveScrollBarGap
after v-body-scroll-lock
or v-bsl
.
Example: v-body-scroll-lock:reserveScrollBarGap="modalIsOpen"
.
Issues can be created on the issues page.
To contribute, please make a pull request.
FAQs
Vue directive for an easy use of the body-scroll-lock library.
The npm package v-body-scroll-lock receives a total of 628 weekly downloads. As such, v-body-scroll-lock popularity was classified as not popular.
We found that v-body-scroll-lock demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.