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高级程序设计(第3版)学习笔记8 js函数(中)
Oct 11 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
Jan 06 Javascript
js实现两个值相加alert出来精确到指定位
Sep 25 Javascript
得到form下的所有的input的js代码
Nov 07 Javascript
Checbox的操作含已选、未选及判断代码
Nov 07 Javascript
JSON无限折叠菜单编写实例
Dec 16 Javascript
jquery实现显示已选用户
Jul 21 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
js拖拽的原型声明和用法总结
Apr 04 Javascript
原生js实现键盘控制div移动且解决停顿问题
Dec 05 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
Apr 11 Javascript
javascript贪吃蛇游戏设计与实现
Sep 17 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中for与foreach的区别分析
2011/03/09 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
jQuery 解析xml文件
2009/08/09 Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
angular实现spa单页面应用实例
2017/07/10 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
通过Python实现一个简单的html页面
2020/05/16 Python
巴西女装购物网站:Eclectic
2018/04/24 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
社区端午节活动方案
2014/01/28 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
洗发水广告词
2014/03/13 职场文书
供应链金融服务方案
2014/05/25 职场文书
先进员工获奖感言
2014/08/14 职场文书
初中差生评语
2014/12/29 职场文书
幼儿教师个人总结
2015/02/05 职场文书
药店收银员岗位职责
2015/04/07 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
python基础之模块的导入
2021/10/24 Python