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 相关文章推荐
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
图片上传即时显示缩略图的js代码
May 27 Javascript
jquery getScript动态加载JS方法改进详解
Nov 15 Javascript
浅谈 jQuery 事件源码定位问题
Jun 18 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
Mar 26 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
jQuery验证表单格式的使用方法
Jan 10 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
express框架中使用jwt实现验证的方法
Aug 25 Javascript
js实现上下左右键盘控制div移动
Jan 16 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
smtp邮件发送一例
2006/10/09 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
Python正则抓取网易新闻的方法示例
2017/04/21 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
详解Python 函数如何重载?
2019/04/23 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
如何在sublime编辑器中安装python
2020/05/20 Python
python 19个值得学习的编程技巧
2020/08/15 Python
Python通过format函数格式化显示值
2020/10/17 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
学校查摆问题整改措施
2014/09/28 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
物流业务员岗位职责
2015/04/03 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
春季运动会加油词
2015/07/18 职场文书
离婚协议书格式范本
2016/03/18 职场文书