Ang*_* L. 6 javascript jquery vue.js vue-component vue-cli
我试图仅在灯箱组件打开时防止滚动,但似乎无法这样做。我希望不要使用任何外部库或插件来做到这一点。
我的 App.vue 包含“LightBox”组件,所以我假设防止滚动功能也应该存在于 App.vue 中。App.vue 片段:
<template>
<div class="SocialAlbumWidget">
<div v-if="isModalVisible && media[activeIndex]">
<LightBox
...
/>
Run Code Online (Sandbox Code Playgroud)
我目前在“方法”部分有一个“showModal()”函数,所以想通过另一个函数传递它。
方法:
mothods: {
...
showModal () {
this.isModalVisible = true
},
closeModal () {
this.isModalVisible = false
}
Run Code Online (Sandbox Code Playgroud)
我希望主体在“灯箱”组件关闭时能够滚动,而在“灯箱”组件打开时则被禁用。谢谢!让我知道哪些其他代码会有用。
Ran*_*ala 18
LightBox 防止模态本身的滚动事件-
<LightBox
@wheel.prevent
@touchmove.prevent
@scroll.prevent
/>
Run Code Online (Sandbox Code Playgroud)
风格overflow: hidden可能会引起一些担忧。
例如;
w.e.f溢出切换Cha*_*lie 10
您可以使用观察者对变化做出反应isModalVisible并使用style="overflow: hidden".
沿着这些路线的东西:
// HTML
<btn @click="dialog = !dialog" >Click Me </btn>
// JS
new Vue({
el: '#app',
data () {
return {
dialog: false,
}
},
watch: {
isModalVisible: function() {
if(this.isModalVisible){
document.documentElement.style.overflow = 'hidden'
return
}
document.documentElement.style.overflow = 'auto'
}
}
})
Run Code Online (Sandbox Code Playgroud)