vue中禁止页面滚动/滚动事件穿透-弹出蒙版时弹出层下面还可以滚动问题解决
弹出层时,蒙版下还可以滚动页面
移动端
在蒙层所在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中禁止页面滚动/滚动事件穿透-弹出蒙版时弹出层下面还可以滚动问题解决相关推荐
- vue中禁止页面滚动/滚动事件穿透
1.移动端 在蒙层所在div上加 @touchmove.prevent <div class="maskBox" @touchmove.prevent></div ...
- vue中进入页面,自动触发一次点击事件
vue中进入页面,自动触发一次点击事件 html script 一进去页面,我肯定是要进去就能看到数据,而不是需要点击选项1才得到数据,解决办法就是直接在created()中调用 html <d ...
- vue中父元素点击事件与子元素点击事件冲突
vue中父元素点击事件与子元素点击事件冲突 在做vue项目的时候,遇到子元素有点击事件,父元素也有点击事件,当点击子元素时往往触发的是父元素的点击事件,产生冲突,怎样解决这个问题呢?这就用到vue事件 ...
- Vue中键盘快捷键-JS键盘事件
在VUE中键盘快捷键-JS键盘事件 键盘事件 在vue项目中监听键盘事件--keydown 键盘常用键的keyCode值 键盘事件 在 JavaScript 中,当用户操作键盘时,会触发键盘事件,键盘 ...
- FullCalendar拖拽日历在vue中单个页面的使用方法
FullCalendar拖拽日历在vue中单个页面的使用方法 1.首先通过npm下载插 npm install --save @fullcalendar/vue @fullcalendar/daygr ...
- vue划入划出事件_基于vue中对鼠标划过事件的处理方式详解
鼠标事件进行监听 需求中,在一个table(组件)表中,对于其中一列(该列为图片列),当鼠标划过该列的某个单元格子(图片)时,需要展示出该单元格子对应的遮罩层 翻阅了一些博客,发现好多都提到了mous ...
- vue中使用vue-awesome-swiper的方法(实现一屏展示多个图片,点击左右滚动一张)
vue中使用vue-awesome-swiper的方法 (awesome-swiper demo官网)[https://surmon-china.github.io/vue-awesome-swipe ...
- Vue中关于scoped以及scoped样式穿透的原理与使用详解
1. scoped 当多个组件中有相同的元素或相同的类名时,在其中一个组件中更改该元素的样式,会导致所有组件中的样式更改,造成样式污染,若只想该样式在当前组件生效就需要用到scoped 示例 组件de ...
- Vue中使用友盟CNZZ事件统计
1.在app.vue中进行引入 created() {let CNZZ_ID = "CNZZ_ID ";// 创建cnzz统计jsconst script = document.c ...
最新文章
- Calendar使用方法
- java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...
- 《Performance Overhead of Atomic Crosschain Transactions》
- thinkphp日志泄漏漏洞_【Windows高危漏洞预警】CVE20200601,影响关键加密功能
- git push -u origin master和git push 远程主机名 本地分支名:远程分支名作用
- linux rm 某个时间以前,(转)linux的一个find命令配合rm删除某天前的文件
- [转载] Python学习:Python成员运算符和身份运算符
- 如何设置单词第一个字母大写_大写一行中每个单词的第一个和最后一个字母
- 大数据各组件默认端口
- 学习一下 PDF417 条码
- 网课脚本教程 【基础】(2) 脚本制作规范
- 软件开发成本评估怎么做?软件开发成本评估从哪些方面进行?
- Java游戏外挂基础
- debian安装mediawiki教程
- FPGA开发中sof和elf文件的合并与格式转换
- 构建前端项目及使用技术
- Openstack采用ISO格式文件创建云主机
- VOS客户端动态黑名单功能配置详解
- 会议,如何从智能走向智慧?——四川有生发布智慧会议平台
- CTP For Python
热门文章
- 国美和三星售后忽视顾客的利益
- js获取近一周、近一月、近三月、近半年等方法记录
- hostapd 创建5G热点
- Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally
- 蓝叠模拟器Installation did not succeed. Installation failed due to: 'closed'
- 【我的OpenGL学习进阶之旅】OpenGL ES 3.0新功能
- 你想象不到,3D打印技术在国外高超声速技术领域达到什么程度了
- 算法设计与分析知识概括
- 计算机使用二进制的优点
- 忘记宏碁笔记本Windows10 BIOS密码,清除BIOS密码