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 相关文章推荐
另类调用flash无须激活的方法
Dec 27 Javascript
在jquery中处理带有命名空间的XML数据
Jun 13 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
Nov 30 Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
Jan 29 Javascript
vue-router 权限控制的示例代码
Sep 21 Javascript
vue cli使用绝对路径引用图片问题的解决
Dec 06 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
在Vue项目中引入JQuery-ui插件的讲解
Jan 27 jQuery
Vuex mutitons和actions初使用详解
Mar 04 Javascript
JavaScript实现多层颜色选项卡嵌套
Sep 21 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
数据库的日期格式转换
2006/10/09 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
Python函数中定义参数的四种方式
2014/11/30 Python
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
python图像处理之镜像实现方法
2015/05/30 Python
六个窍门助你提高Python运行效率
2015/06/09 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
Python读取properties配置文件操作示例
2018/03/29 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
python快排算法详解
2019/03/04 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
大学考试作弊检讨书
2014/01/30 职场文书
会计专业自我鉴定
2014/02/10 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
汽车专业求职信
2014/06/05 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
2016年教师节慰问信
2015/12/01 职场文书