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 相关文章推荐
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
Jul 29 Javascript
在JS数组特定索引处指定位置插入元素的技巧
Aug 24 Javascript
jQuery定义背景动态切换效果的方法
Mar 23 Javascript
基于javascript实现随机颜色变化效果
Jan 14 Javascript
EasyUI布局 高度自适应
Jun 04 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
vue中如何让子组件修改父组件数据
Jun 14 Javascript
微信小程序 腾讯地图显示偏差问题解决
Jul 27 Javascript
深入理解Vue keep-alive及实践总结
Aug 21 Javascript
简单了解JavaScript作用域
Jul 31 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写出自己的BLOG系统 2
2010/04/12 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
smarty实现多级分类的方法
2014/12/05 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
Python中用max()方法求最大值的介绍
2015/05/15 Python
20招让你的Python飞起来!
2016/09/27 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
python实现二维插值的三维显示
2018/12/17 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
Python函数和模块的使用总结
2019/05/20 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Java面试题:为什么要用Java
2012/05/11 面试题
个人实用简单的自我评价
2013/10/19 职场文书
工厂保洁员岗位职责
2013/12/04 职场文书
搬家公司的创业计划书
2014/01/01 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
承诺函范文
2015/01/21 职场文书
体育活动总结
2015/02/04 职场文书
Python基础之pandas数据合并
2021/04/27 Python
react 路由Link配置详解
2021/11/11 Javascript