JavaScript实现移动端弹窗后禁止滚动


Posted in Javascript onMay 25, 2020

代码如下

computed:{
  popupStatus(){
    return this.SendCircle_visible || this.generateInfo_visible || this.isPosterShow;
  }
},
methods:{
  stopTouch(e){
    e.preventDefault();
  },
},
watch: { 
  popupStatus(val) {
    let preD = this.stopTouch;
    let options = { 
      passive: false, //强调默认事件
      capture: true, //早点禁止该事件 
    };
    if (val) {
      document.body.style.overflow = 'hidden';
      document.addEventListener('touchmove', preD, options); // 禁止页面滑动
    } else {
      document.body.style.overflow = ''; // 出现滚动条
      document.removeEventListener('touchmove', preD, options);
    }
  }
}

配置说明

addEventListener目前第三个参数可以为布尔值或对象

addEventListener(type, listener[, useCapture ])
addEventListener(type, listener[, options ])

为对象时默认配置如下

capture: false
passive: false
once: false

其中 capture 属性等价于以前的 useCapture 参数;once 属性就是表明该监听器是一次性的,执行一次后就被自动 removeEventListener 掉。

passive是因为浏览器无法预先知道一个监听器会不会调用 preventDefault(),只有等监听器执行完后再去执行默认行为,因此就会导致页面卡顿。而一旦passive为true,浏览器就可以直接执行默认行为而不等待。此时即使调用了 preventDefault() 也不会生效。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
web 页面分页打印的实现
Jun 22 Javascript
一个报数游戏js版(约瑟夫环问题)
Aug 05 Javascript
IE6 fixed的完美解决方案
Mar 31 Javascript
jquery解决客户端跨域访问问题
Jan 06 Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 Javascript
Js动态设置rem来实现移动端字体的自适应代码
Oct 14 Javascript
微信小程序开发之路由切换页面重定向问题
Sep 18 Javascript
回顾Javascript React基础
Jun 15 Javascript
vue与django集成打包的实现方法
Nov 11 Javascript
js页面加载后执行的几种方式小结
Jan 30 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 Javascript
JS封装cavans多种滤镜组件
Feb 15 Javascript
ES2020 已定稿,真实场景案例分析
May 25 #Javascript
Javascript原型链及instanceof原理详解
May 25 #Javascript
Node登录权限验证token验证实现的方法示例
May 25 #Javascript
详解Node.js使用token进行认证的简单示例
May 25 #Javascript
基于redis的小程序登录实现方法流程分析
May 25 #Javascript
JSONP解决JS跨域问题的实现
May 25 #Javascript
JS实现时间校验的代码
May 25 #Javascript
You might like
咖啡与水的关系
2021/03/03 冲泡冲煮
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
python写的一个文本编辑器
2014/01/23 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
python字符类型的一些方法小结
2016/05/16 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
如何使用VSCode愉快的写Python于调试配置步骤
2018/04/06 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
小学教师培训感言
2014/02/11 职场文书
手机银行营销方案
2014/03/14 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
2014年政教处工作总结
2014/12/20 职场文书
Python PIL按比例裁剪图片
2022/05/11 Python