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自动判断浏览器分辨率的代码
Jan 28 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
React Native 使用Fetch发送网络请求的示例代码
Dec 02 Javascript
获取layer.open弹出层的返回值方法
Aug 20 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
Aug 20 Javascript
js实现简单选项卡功能
Mar 23 Javascript
详解vue-router数据加载与缓存使用总结
Oct 29 Javascript
js实现掷骰子小游戏
Oct 24 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
Nov 12 Javascript
electron 如何将任意资源打包的方法步骤
Apr 16 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
Aug 22 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
PHP4在Windows2000下的安装
2006/10/09 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
前端路由&webpack基础配置详解
2019/06/10 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
python中的字典详细介绍
2014/09/18 Python
Python实现的RSS阅读器实例
2015/07/25 Python
Python selenium 三种等待方式解读
2016/09/15 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
为什么使用接口?
2014/08/13 面试题
工程专业毕业生自荐信范文
2013/12/25 职场文书
2013的个人自我评价
2013/12/26 职场文书
财务出纳岗位职责
2014/02/03 职场文书
长城导游词400字
2015/01/30 职场文书
公司停电通知
2015/04/15 职场文书
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python