Modal模态框的防穿透问题,模态框弹出后,禁止body滑动事件
来源:互联网 发布:知乎的钓鱼什么意思 编辑:程序博客网 时间:2024/05/23 01:18
我封装的模态框生成是这种结构的
代码插入:
<div class="wx-dialog"><div class="dialog-content" id="pageinfo"><p class="pop-title">温馨提示</p><div class="pop-content">网络不给力哦,请重新进入~</div><p class="btn"><span class="confirmbtn" style="width:100%;">知道了</span></p> </div></div>$('.pop-content')的max-height是200px,当内容超过200px时,会有滚动条。
需要判断①手指touch的位置是否为.pop-content或者.pop-content的内容,若不是则阻止滚动;
②判断滚动条是否在.pop-content的最上方或者最下方,若是则阻止滚动。
于是有了下面的代码:
var popCnt = $(".pop-content");// 获取滚动条最高高度(内容总高度-显示的高度)var maxScrollTop = popCnt[0].scrollHeight - popCnt.height(), touchStartY = 0;// pop-content$("body").on("touchstart", function(e) { touchStartY = e.originalEvent.targetTouches[0].pageY; }).on("touchmove",function(e) { // 值是负数为往上滑,说明还在往下滚 // 正数为往下滑,说明还在往上滚var moveLength = e.originalEvent.targetTouches[0].pageY- touchStartY;if (e.target.className != "pop-content"&& $(e.target).parents(".pop-content").length == 0) {e.preventDefault();} else { var scrollTop = popCnt.scrollTop(); // if(如果滚动底了还在往下滚 || 如果滚到头了还在往上滚) if (((scrollTop) >= maxScrollTop && moveLength < 0)|| (scrollTop <= 0 && moveLength > 0)) {e.preventDefault(); } }});判断手指touch的点是否为.pop-content或者.pop-content的内容,比较好理解,我就不再解释了,
重点是下面的条件:判断滚动条是否滚动到底或者到顶。
我在这里遇到一个大坑。之前做项目的时候我测试了好多次就是不好使,所有的modal都无法阻止背后body的滑动事件,
尤其是在微信浏览器,还会拉出上下的黑色网址部分。
最后终于找出原因,是我在.pop-content中加了padding:15px;导致scrollTop的值直接少了30px,
所以scrollTop+30px就可以完美解决问题,希望自己可以吸取教训,以后绝对注意样式对功能实现的影响。
1 0
- Modal模态框的防穿透问题,模态框弹出后,禁止body滑动事件
- 移动端弹出穿透问题(弹出层弹出后body还能滑动)
- modal 弹出层后禁止底层滚动
- 弹出模态框modal示例
- 移动端弹出层后禁止背景底层 body滚动
- 扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
- modal模态框事件用法
- 手机端弹出层弹出后,下面禁止滑动
- ViewPager禁止滑动的问题
- 微信小程序弹出自定义模态框,禁止底部页面滚动事件
- 禁止ViewPager的左右滑动事件
- 禁止遮罩的滑动事件
- bootstrap中的模态框(modal,弹出层)
- bootstrap中的模态框(modal,弹出层)
- modal模态框的实现
- 底层的CCMenu 穿透弹出框Touch事件 解决方法
- bootstrap modal 在IOS9中不能弹出的问题 IOS 9 bootstrap modal ios 9 noticework
- 整理:手机端弹出提示框,使用的bootstrap中的模态框(modal,弹出层),比kendo弹出效果好
- HDFS简介
- Less-11&12
- D题 走迷宫(dfs+二分枚举)
- Java内存区域划分、内存分配原理
- signal 进程通信
- Modal模态框的防穿透问题,模态框弹出后,禁止body滑动事件
- ArrayList自动扩容解析
- 使用python上传和下载文件到FastDFS
- Qt5.8安装及模块介绍
- 安卓-浅谈个人学习方法(自学篇)
- JavaWeb日记——Shiro从数据库获取身份信息
- JVM性能调优
- HashMap集合遍历的三种方法
- 指数分布族(The Exponential Family)与广义线性模型(GLM,Generalized Linear Models)