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 相关文章推荐
JS判断元素为数字的奇异写法分享
Aug 01 Javascript
关于javascript模块加载技术的一些思考
Nov 28 Javascript
Node.js + Redis Sorted Set实现任务队列
Sep 19 Javascript
vue.js父组件使用外部对象的方法示例
Apr 25 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
Vue的土著指令和自定义指令实例详解
Feb 04 Javascript
在 webpack 中使用 ECharts的实例详解
Feb 05 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
如何安装控制器JavaScript生成插件详解
Oct 21 Javascript
你可能不知道的CORS跨域资源共享
Mar 13 Javascript
详解VSCode配置启动Vue项目
May 14 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
js 操作css实现代码
2009/06/11 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
js Math 对象的方法
2013/09/01 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
Koral官方网站:女性时尚运动服
2019/04/10 全球购物
结构工程研究生求职信
2013/10/13 职场文书
电子信息毕业生自荐信
2013/11/16 职场文书
企业演讲稿范文
2013/12/28 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
球队口号
2014/06/18 职场文书
募捐感谢信
2015/01/22 职场文书
公司禁烟通知
2015/04/23 职场文书
SQL基础的查询语句
2021/11/11 MySQL