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 相关文章推荐
关于Aptana Studio生成自动备份文件的解决办法
Dec 23 Javascript
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
详解AngularJS的通信机制
Jun 18 Javascript
js实现TAB切换对应不同颜色的代码
Aug 31 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
Sep 19 Javascript
ES6中class类用法实例浅析
Apr 06 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
完美实现js拖拽效果 return false用法详解
Jul 28 Javascript
剖析Angular Component的源码示例
Mar 23 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
Nov 07 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
May 31 Javascript
vscode+gulp轻松开发小程序的完整步骤
Oct 18 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
php在文件指定行中写入代码的方法
2012/05/23 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
python实现四人制扑克牌游戏
2020/04/22 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
柯基袜:Corgi Socks
2017/01/26 全球购物
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
优秀经理获奖感言
2014/03/04 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
创先争优活动承诺书
2014/08/30 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
医院保洁员管理制度
2015/08/05 职场文书
七年级作文之英语老师
2019/10/28 职场文书