vue页面禁止蒙层底部滚动

函数名 popupVisible,我是把这个方法放到vuex里面, 滚动高度用变量top表示

state: {
    pageLoad: !0,
    top: 0, // 页面滚动的高度
  }, 
popupVisible(state, newValue) {
      if (newValue) {
        // 页面固定
        state.top = window.scrollY;
        console.log("true--state.top", state.top);
        document.body.style.position = "fixed";
        document.body.style.top = -state.top + "px";
      } else {
        // 页面滚动
        console.log("false--state.top", state.top);
        document.body.style.position = "";
        document.body.style.top = "";
        window.scrollTo(0, state.top);
      }
    },

actions 里面commit 该mutations方法:

hidePass({ commit }, params) { // commit对象
      commit(‘popupVisible‘, params);
    }

vue页面引用:

// 禁止蒙层底部滚动

this.$store.dispatch("hidePass", true);

// 允许

this.$store.dispatch("hidePass", false);

原文地址:https://www.cnblogs.com/demi-guoba/p/11398403.html

时间: 2024-11-08 01:49:36

vue页面禁止蒙层底部滚动的相关文章

vue页面有弹层,禁止页面滚动

1 var preD = function (e) { 2 e.preventDefault() 3 } 4 export default { 5 data () { 6 return { 7 popupStatus: false 8 } 9 }, 10 watch: { // 监听data中弹层状态 11 popupStatus (val) { 12 if (val) { 13 document.body.style.overflow = 'hidden' 14 document.addEve

移动端禁止弹窗蒙层下页面滚动

第一种简单的方法: 在弹窗出现时,在 html 上添加 class: .open-model { overflow: hidden; height: 100%; } 弹窗消失时,再 remove class 代码示例(react): import React from 'react' import {css} from 'glamor' css.global('.open-model', {overflow: 'hidden', height: '100%'}) componentDidUpda

禁止遮罩层以下屏幕滑动

相信大家在做移动端开发的时候会经常遇到这种场景,需要适时的弹出遮罩(有时为了突出还会在外面加上蒙层),弹窗出现以后,为了追求良好的用户体验,遮罩以下的屏幕是禁止滑动的.在网上找了很多资料,大体就这两种做法,但都有不完善的地方.加上自己的思考和总结,想到一个办法,应该可以解决你的问题. a)大众型 一般,大家想到的都是给body或者html添加overflow:hidden样式,当然height要设置成100%.这样在大多数机型上是可以的,但有个别的就是不起作用,我也不知道为什么(求知道的大神告知

关于移动端js弹出层滚动的时候 body层不可滚动的解决办法

最近在做移动端网站,在点击导航栏,弹出导航列表时,出现了问题.下滑列表时底层body也跟着滚动,连查带想的折腾了两天才解决这个问题.下面主要分享一下解决办法以及关键代码. 一.有的网友建议弹出层弹出时给 html 和 body 都加上"height:100%:overflow:hidden:",然而在手机上并没有什么卵用 二.结合弹出层加上"overflow-y:auto"依然不起作用 .... 后来经过网友的帮助,结合我的代码终于找到了解决的办法 我的项目是用vu

禁止遮罩层以下屏幕滑动----正解

相信大家在做移动端开发的时候会经常遇到这种场景,需要适时的弹出遮罩(有时为了突出还会在外面加上蒙层),弹窗出现以后,为了追求良好的用户体验,遮罩以下的屏幕是禁止滑动的.在网上找了很多资料,大体就这两种做法,但都有不完善的地方.加上自己的思考和总结,想到一个办法,应该可以解决你的问题. a)大众型 一般,大家想到的都是给body或者html添加overflow:hidden样式,当然height要设置成100%.这样在大多数机型上是可以的,但有个别的就是不起作用,我也不知道为什么(求知道的大神告知

css-dialog样式实现弹框蒙层全屏无需JS计算高度兼容IE7

<!DOCTYPE html><html><head>  <meta charset="UTF-8">  <title>css-dialog</title>  <script src="http://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script> </head><style type="

移动端js弹出层滚动的时候 body层不可滚动的解决办法

原文:https://blog.csdn.net/queenzjl/article/details/53507661 一.有的网友建议弹出层弹出时给 html 和 body 都加上"height:100%:overflow:hidden:",然而在手机上并没有什么卵用 二.结合弹出层加上"overflow-y:auto"依然不起作用 三.加上touchmove事件:window.ontouchmove = function(e){e.preventDefault()

记录在ios系统上,自研app,灰度环境遇到的一个vue页面dom节点已渲染,但是显示部分空白的情况

一.问题产生背景: 在ios系统上,自研app,灰度环境,进入到前端页面后,从不同入口进入到适配车型页面,部分页面显示正常,部分页面显示异常,而适配车型页面的代码逻辑仅仅是请求接口,获取到数据后进行for循环渲染而已 1.vue页面代码如下: 2.js代码如下(请求数据,有缓存先取缓存,没有取接口请求返回数据,直接赋值): 3.接口返回数据如下: 4.除了ios.自研app.灰度环境的某个入口外,其他各端,包括ios.自研app.灰度环境的大部分入口(进到适配车型页)正常如下: 5.ios.自研

利用伪元素做蒙层

注意: 1.若该元素为块级元素,则其伪元素的宽高继承自该元素. 2.若想对文字位置调整,可对其设置box-sizing: border-box,再通过padding来调整位置. 3.还可对伪元素设置背景图片,并通过设置background-position为百分数,使背景图片在蒙层内调整位置. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8">