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 相关文章推荐
使用jquery给input和textarea设定ie中的focus
May 29 Javascript
JS 自动完成 AutoComplete(Ajax 查询)
Jul 07 Javascript
jquerymobile局部渲染的各种刷新方法小结
Mar 05 Javascript
使用jQuery实现星级评分代码分享
Dec 09 Javascript
javascript实现获取浏览器版本、操作系统类型
Jan 29 Javascript
jquery的幻灯片图片切换效果代码分享
Sep 07 Javascript
详解JavaScript基于面向对象之继承
Dec 13 Javascript
JavaScript判断对象是否为数组
Dec 22 Javascript
vue组件详解之使用slot分发内容
Apr 09 Javascript
小程序分页实践之编写可复用分页组件
Jul 18 Javascript
vue路由缓存的几种实现方式小结
Feb 02 Javascript
Angular性能优化之第三方组件和懒加载技术
May 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 字符串 小常识
2009/06/05 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
详解vuex的简单使用
2018/03/12 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
Python map和reduce函数用法示例
2015/02/26 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
基于Python log 的正确打开方式
2018/04/28 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
党员创先争优承诺书
2014/03/26 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
SQL Server Agent 服务无法启动
2022/04/20 SQL Server