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 相关文章推荐
javascript 控制弹出窗口
Apr 10 Javascript
全面解析node 表单的图片上传
Nov 21 Javascript
基于javascript实现最简单选项卡切换
Feb 01 Javascript
AngularJS页面传参的5种方式
Apr 01 Javascript
node.js实现登录注册页面
Apr 08 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
Apr 14 Javascript
利用Ionic2 + angular4实现一个地区选择组件
Jul 27 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 Javascript
js html实现计算器功能
Nov 13 Javascript
Vue中axios拦截器如何单独配置token
Dec 27 Javascript
javascript实现电商放大镜效果
Nov 23 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/10/04 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
2016/12/25 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
详解Django中六个常用的自定义装饰器
2018/07/04 Python
python 除法保留两位小数点的方法
2018/07/16 Python
Python numpy数组转置与轴变换
2019/11/15 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
高中同学聚会邀请函
2014/01/11 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
毕业证明书
2015/06/19 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL