首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

禁止遮罩下页面滑动

最近在业务中遇见一个问题,就是弹出一个蒙版,覆盖整个页面,有一部分内容固定在底部。可是底部内容还是能滑动。 我相信在蛮多场景下是需要做到蒙版的时候底部禁止滑动。尤其是手机端。...如果弹出的内容不需要滚动,直接禁止touchmove或者touchstart: var content = document.getElementsByTagName('body')[0]; content.addEventListener...')[0]; content.addEventListener('touchmove', function (e) { e.preventDefault(); }, false) 这两个都是禁止...touch事件,在移动端有效,在PC端用滚轮滑动禁止不了。...在这边要分享一件事,就是在微信下,当你滑动的时候,透过遮罩触发了body,那么微信默认进行一个进程一样,得等一下才能滑动遮罩上面的元素。暂时没有优化的方法,当然,遮罩没有透明度不会出现。 (完)

2K30
您找到你想要的搜索结果了吗?
是的
没有找到

JS页面生命周期事件

今天做个大屏项目, 想在大屏加载所有资源前加个加载动画, 加载结束再移除, 当然肯定时在load事件里进行移除, 但是对其他的事件有点模糊了, 复习一下哦垃圾 生命周期事件 DOMContentLoaded...DOMContentLoaded DOMContentLoaded 事件发生在 document 对象上, 必须使用document对象上 2. window.onload 当包括样式、图像和其他资源的页面被全部加载时...,window 对象上的 load 事件就会被触发 3. window.onunload 当访问者离开页面时,window 对象上的 unload 事件就会被触发。...我们可以在那里做一些不涉及延迟的事件,比如关闭相关的弹出窗口 可以在用户离开时, 使用unload事件发送我们想要保存在服务器上的数据 参考https://w3c.github.io/beacon/,...当 sendBeacon 请求完成的时候,浏览器可能已经离开了文档,所以就没办法获取服务器的响应数据 4. window.onbeforeunload 如果访问中触发了离开页面的导航或试图关闭窗口,beforeunload

3.3K30

JS魔法堂:定义页面的Dispose方法——unload事件启示录

这么多操作会触发这两兄弟,怎么处理才好啊?没啥办法,针对功能需求做取舍咯。对于我的需求就是在页面的Dispose方法中调用登出API,经过和实施同事的沟通——只要刷新页面就触发登出。...(unload事件的Cancelable属性值为No)  那么反过来看看beforeunload事件,这时页面状态大致与平常一致: 页面所有资源均未释放,且页面可视区域效果没有变化; UI人机交互失效(...的JS异常,而firefox下则连异常都懒得报。  既然不给用window.confirm,那么如何弹出二次确定对话框呢?其实beforeunload事件已经为我们准备好了。...那怎么办呢?既然读操作不行那采用嵌套Cross-domain资源总行吧。...以前,当我们从页面A跳转到页面B时,页面A的所有资源将被释放(销毁DOM对象,回收JS对象, 释放解码后的Image资源等);后来各大浏览器厂商分别采用bfcache/page cache/fast history

2.2K90

jimojianghu

然而那能怎么办,用户第一,自然得快速解决这个问题,而且是触控板和触摸屏都得解决。 在以前,如果要禁止移动端设备的触摸屏上,手指缩小放大的功能,都会想到使用viewport 来处理。...触控板 要禁止触控板的缩放行为,需要处理鼠标滚轮事件:wheel 。 因为笔记本触摸板双指滑动,将响应该事件,如果对该事件阻止默认行为,就能解决缩放问题了。...) { // event.stopPropagation() // }) 触摸屏 要禁止触摸屏的手指缩放,可以使用如下的 CSS 和 JS 两种方法。...js 处理 使用js代码来禁止触摸屏的手指缩放,和处理触控板类似的,这里主要是监听几个手势事件,touchstart, touchend, touchmove等。...笔记本触摸板双指滑动,将响应滚轮事件,因此可以监听该事件禁止触摸板手指缩放界面。 但需要注意滚轮默认事件,如会导致子元素滚动失效,这时候就要在子元素上阻止相同事件冒泡。

3.7K00

滚动穿透的6种解决方案【已自测】

关键代码: JS控制弹窗的交互、body的禁止滚动 ? css添加弹层的超出滚动效果 ? 局限问题: 弹层中内容滚动到顶部或底部后,还会连带页面body一起滚动。也就是还会发生穿透效果。...真正的问题是当我们滑动弹窗可滚动区域,把可滚动区域的内容上滑到底部或下拉到顶部后,再触发弹窗可滚动区域准备滑动,此时的背景页面就会跟随滚动。真是恐怖。...因此还需要我们对弹层的可滚动区域的滑动事件做监听: 第一种情况,若向上滑动时,到达底部;或者第二种情况,若向下滑动时,已到顶部。 这两种情况任意一种发生时,就阻止滑动事件。 这段逻辑代码如下: ?...关键代码: js控制弹窗的交互、弹窗的禁止滚动 ? 局限问题: 因为touchmove被禁掉了,就会造成弹窗内部所有位置都不能响应touchmove事件,效果上就是弹窗内部不能再滚动了。...解决方案与思路: 具体制作思路写在js注释上。 1、交互代码 ? 2、禁掉弹窗的touchmove 的默认事件 ? 3、重写手势滑动效果 ?

13.4K31

移动端的那些坑

://www.joycesong.com/arch… ios版本:11.1-11.3 使用swiper或者transform属性时,有一定概率出现transform的元素以外的所有  元素都消失,上下滑动一下页面又出现了...部分机型touchmove事件不连续触发 Android的事件每次都要经过浏览器内核再发往UI线程,为了提高效率,如果浏览器内核中没有设置preventDefault,Android就认为该页面元素不需要...touchmove事件,于是下次的事件就不经过内核,直接发往UI线程,于是js中就捕获不到touchmove事件。...视图模型新增了一些 scroll 相关的方法,参考:https://drafts.csswg.org/csso… polyfill:https://github.com/iamdustan/… 综合问题 禁止页面滑动...当你需要禁止移动端页面滑动的时候,在iOS下,需要禁止页面中的touchmove事件,在安卓下,需要给html, body元素加上如下CSS:height:100%;overflow:hidden;。

1.7K30

12个关于移动 H5 开发的采坑问题汇总

iOS 滑动不流畅 表现 上下滑动页面会产生卡顿,手指离开页面页面立即停止运动。整体表现就是滑动不流畅,没有滑动惯性。...监听事件禁止滑动 移动端触摸事件有三个,分别定义为 1. touchstart :手指放在一个DOM元素上。 2. touchmove :手指拖曳一个DOM元素。...由此我们找到解决方案,通过监听 touchmove,让需要滑动的地方滑动,不需要滑动的地方禁止滑动。 值得注意的是我们要过滤掉具有滚动容器的元素。...产生原因 HTML 本身会产生放大或缩小的行为,比如在 PC 浏览器上,可以自由控制页面的放大缩小。但是在移动端,我们是不需要这个行为的。所以,我们需要禁止该不确定性行为,来提升用户体验。...但是在 App 内部我们怎么做呢?

1.5K20
领券