弹出层时,蒙版下还可以滚动页面

移动端

在蒙层所在div上加 @touchmove.prevent

<div class="maskBox" @touchmove.prevent></div>

PC端

弹层显示时调用 stopMove()停止页面滚动 ,弹层消失时调用 Move()开启页面滚动

//停止页面滚动
stopMove(){let m = function(e){e.preventDefault();};document.body.style.overflow='hidden';document.addEventListener("touchmove",m,{ passive:false });//禁止页面滑动
},
//开启页面滚动
Move(){let m =function(e){e.preventDefault();};document.body.style.overflow='';//出现滚动条document.removeEventListener("touchmove",m,{ passive:true });
}

vue封装

directives: {fixed: {// inserted 被绑定元素插入父节点时调用inserted () {let scrollTop = document.body.scrollTop || document.documentElement.scrollTopdocument.body.style.cssText += 'position:fixed;width:100%;top:-' + scrollTop + 'px;'},// unbind 指令与元素解绑时调用unbind () {let body = document.bodybody.style.position = ''let top = body.style.topdocument.body.scrollTop = document.documentElement.scrollTop = -parseInt(top)body.style.top = ''}}
},

自定义指令使用

<div  v-if="isShowRecordModal" v-fixed>........
</div>

该指令的注意点是必须使用v-if开启关闭弹窗,因为该指令依赖于dom的插入和注销,使用v-show是肯定不行的。

vue中禁止页面滚动/滚动事件穿透-弹出蒙版时弹出层下面还可以滚动问题解决相关推荐

  1. vue中禁止页面滚动/滚动事件穿透

    1.移动端 在蒙层所在div上加 @touchmove.prevent <div class="maskBox" @touchmove.prevent></div ...

  2. vue中进入页面,自动触发一次点击事件

    vue中进入页面,自动触发一次点击事件 html script 一进去页面,我肯定是要进去就能看到数据,而不是需要点击选项1才得到数据,解决办法就是直接在created()中调用 html <d ...

  3. vue中父元素点击事件与子元素点击事件冲突

    vue中父元素点击事件与子元素点击事件冲突 在做vue项目的时候,遇到子元素有点击事件,父元素也有点击事件,当点击子元素时往往触发的是父元素的点击事件,产生冲突,怎样解决这个问题呢?这就用到vue事件 ...

  4. Vue中键盘快捷键-JS键盘事件

    在VUE中键盘快捷键-JS键盘事件 键盘事件 在vue项目中监听键盘事件--keydown 键盘常用键的keyCode值 键盘事件 在 JavaScript 中,当用户操作键盘时,会触发键盘事件,键盘 ...

  5. FullCalendar拖拽日历在vue中单个页面的使用方法

    FullCalendar拖拽日历在vue中单个页面的使用方法 1.首先通过npm下载插 npm install --save @fullcalendar/vue @fullcalendar/daygr ...

  6. vue划入划出事件_基于vue中对鼠标划过事件的处理方式详解

    鼠标事件进行监听 需求中,在一个table(组件)表中,对于其中一列(该列为图片列),当鼠标划过该列的某个单元格子(图片)时,需要展示出该单元格子对应的遮罩层 翻阅了一些博客,发现好多都提到了mous ...

  7. vue中使用vue-awesome-swiper的方法(实现一屏展示多个图片,点击左右滚动一张)

    vue中使用vue-awesome-swiper的方法 (awesome-swiper demo官网)[https://surmon-china.github.io/vue-awesome-swipe ...

  8. Vue中关于scoped以及scoped样式穿透的原理与使用详解

    1. scoped 当多个组件中有相同的元素或相同的类名时,在其中一个组件中更改该元素的样式,会导致所有组件中的样式更改,造成样式污染,若只想该样式在当前组件生效就需要用到scoped 示例 组件de ...

  9. Vue中使用友盟CNZZ事件统计

    1.在app.vue中进行引入 created() {let CNZZ_ID = "CNZZ_ID ";// 创建cnzz统计jsconst script = document.c ...

最新文章

  1. Calendar使用方法
  2. java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...
  3. 《Performance Overhead of Atomic Crosschain Transactions》
  4. thinkphp日志泄漏漏洞_【Windows高危漏洞预警】CVE20200601,影响关键加密功能
  5. git push -u origin master和git push 远程主机名 本地分支名:远程分支名作用
  6. linux rm 某个时间以前,(转)linux的一个find命令配合rm删除某天前的文件
  7. [转载] Python学习:Python成员运算符和身份运算符
  8. 如何设置单词第一个字母大写_大写一行中每个单词的第一个和最后一个字母
  9. 大数据各组件默认端口
  10. 学习一下 PDF417 条码
  11. 网课脚本教程 【基础】(2) 脚本制作规范
  12. 软件开发成本评估怎么做?软件开发成本评估从哪些方面进行?
  13. Java游戏外挂基础
  14. debian安装mediawiki教程
  15. FPGA开发中sof和elf文件的合并与格式转换
  16. 构建前端项目及使用技术
  17. Openstack采用ISO格式文件创建云主机
  18. VOS客户端动态黑名单功能配置详解
  19. 会议,如何从智能走向智慧?——四川有生发布智慧会议平台
  20. CTP For Python

热门文章

  1. 国美和三星售后忽视顾客的利益
  2. js获取近一周、近一月、近三月、近半年等方法记录
  3. hostapd 创建5G热点
  4. Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally
  5. 蓝叠模拟器Installation did not succeed. Installation failed due to: 'closed'
  6. 【我的OpenGL学习进阶之旅】OpenGL ES 3.0新功能
  7. 你想象不到,3D打印技术在国外高超声速技术领域达到什么程度了
  8. 算法设计与分析知识概括
  9. 计算机使用二进制的优点
  10. 忘记宏碁笔记本Windows10 BIOS密码,清除BIOS密码