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 相关文章推荐
JavaScript打印iframe内容示例代码
Aug 20 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
May 20 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
May 10 Javascript
纯JS实现可拖拽表单的简单实例
Sep 02 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 Javascript
Vue.js 插件开发详解
Mar 29 Javascript
JavaScript标准对象_动力节点Java学院整理
Jun 27 Javascript
jQuery实现倒计时功能完整示例
Jun 01 jQuery
JS轮播图的实现方法2
Aug 25 Javascript
vue项目实现减少app.js和vender.js的体积操作
Nov 12 Javascript
如何在JavaScript中等分数组的实现
Dec 13 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版本不同可能诱发的问题
2015/12/22 PHP
php中序列化与反序列化详解
2017/02/13 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
vuex实现购物车功能
2020/06/28 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
python实现ping命令小程序
2020/12/28 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
个人思想理论学习的自我鉴定
2013/11/30 职场文书
总经理助理的职责
2014/03/14 职场文书
师范生见习报告范文
2014/11/03 职场文书
2014年环保局工作总结
2014/12/11 职场文书
简单谈谈Python面向对象的相关知识
2021/06/28 Python