vue移动端弹起蒙层滑动禁止底部滑动操作


Posted in Javascript onJuly 22, 2020

解决办法

在蒙层弹起的时候将body设置为fixed定位

在蒙层消失的时候将body恢复原位

popupVisible(newValue) {
  if (newValue) {
    document.body.style.position = 'fixed';
    document.body.style.width = '100%';
    document.body.style.height = '100%';
  }
  else {
    document.body.style.position = 'static';
    document.body.style.height = 'auto';
  }
},

设置为fixed的时候整个页面会恢复原位,如果需要把位置开始scrollY记下来,恢复的时候在滚到原来的位置

popupVisible(newValue) {
  if (newValue) {
    document.body.style.position = 'fixed';
    document.body.style.width = '100%';
    document.body.style.height = '100%';
    this.top = window.scrollY;
  }
  else {
    document.body.style.position = 'static';
    document.body.style.height = 'auto';
    window.scrollTo(0, this.top);
  }
}

补充知识:解决使用vue时页面内有弹窗时禁止页面滚动 以及页面内弹窗因绝对定位导致页面压缩的问题

如下所示:

@touchmove.prevent

当页面弹窗出现时设置 @touchmove.prevent = "false";

2.页面内弹窗因绝对定位导致页面压缩的问题 造成底部导航栏固定在输入键盘上面的问题

// 动态设置背景图的高度为浏览器可视区域高度
// 首先在Virtual DOM渲染数据时,设置下背景图的高度.
  this.bodyHeight = `${document.documentElement.clientHeight}`;
// 然后监听window的resize事件.在浏览器窗口变化时再设置下背景图高度.
 window.onresize = function temp() {
 var bodyHeight = `${document.documentElement.clientHeight}`;
 that.bodyHeight = bodyHeight;
 };

通过判断 bodyHeight 数值的变化,来控制底部导航栏的出现与隐藏

以上这篇vue移动端弹起蒙层滑动禁止底部滑动操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
Apr 27 Javascript
通过复制Table生成word和excel的javascript代码
Jan 20 Javascript
使用JS+plupload直接批量上传图片到又拍云
Dec 01 Javascript
node.js中的fs.statSync方法使用说明
Dec 16 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
Dec 18 Javascript
深入了解JavaScript的逻辑运算符(与、或)
Dec 20 Javascript
JavaScript数据结构中串的表示与应用实例
Apr 12 Javascript
浅谈Angular路由守卫
Aug 26 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
简单说说如何使用vue-router插件的方法
Apr 08 Javascript
分享Angular http interceptors 拦截器使用(推荐)
Nov 10 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
Jul 22 #Javascript
vue 弹出遮罩层样式实例
Jul 22 #Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
Jul 22 #Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 #Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 #Javascript
vue项目中使用多选框的实例代码
Jul 22 #Javascript
vue中el-input绑定键盘按键(按键修饰符)
Jul 22 #Javascript
You might like
php.ini中文版
2006/10/09 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
php教程 插件机制在PHP中实现方案
2012/11/02 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
python实现的一个p2p文件传输实例
2014/06/04 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
python实现数据写入excel表格
2018/03/25 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
行政管理专业推荐信
2013/11/02 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
求职面试个人自我评价
2014/02/28 职场文书
企业宣传方案
2014/03/04 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
Flask response响应的具体使用
2021/07/15 Python
MySQL transaction事务安全示例讲解
2022/06/21 MySQL