首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

点击穿透原理及解决

上面说到原生事件中并没有 tap 事件,可以参考经典的 zepto.js 对 singleTap 事件的处理。...二、点击穿透场景及原因 有了以上的基础,我们就可以理解为什么会出现点击穿透现象了。我们经常会看到“弹窗/浮层”这种东西,我做个了个demo。 ?...因此,点击穿透的现象就容易理解了,在这 300ms 以内,因为上层元素隐藏或消失了,由于 click 事件的滞后性,同样位置的 DOM 元素触发了 click 事件(如果是 input 则触发了 focus...三、解决 1、只用touch 最简单的解决方案,完美解决点击穿透问题 把页面内所有click全部换成touch事件(touchstart 、’touchend’、’tap’), 需要特别注意 a标签,a...标签的href也是click,需要去掉换成js控制的跳转,或者直接改成span + tap控制跳转。

3.9K104

【移动端】touch事件穿透事件

苹果的解决方案: 方案一:双指进行缩放 方案二:在屏幕上双击进行放大(单击300ms后,再单击才算双击),造成了,移动端点击事件,300ms 延迟的问题 解决方案,就是使用touch事件来替代 移动端新增...因click是在touch系列事件发生后300ms才触发的,混用click和touch肯定会导致穿透问题....点击穿透现象的情况: 1) 蒙层问题 蒙层的关闭按钮绑定的是touch事件,而按钮下面元素绑定的是click事件,touch事件触发后,蒙层消失,300ms后这个点的click事件触发。...2) 跨页面点击穿透问题 如果按钮下面恰好是一个href属性的a标签,那么页面就会发生跳转(a标签跳转默认是click事件触发的) 解决问题: 方法一:自己封装tap事件不会有穿透问题,因为阻止了默认行为...e.preventDefault(); 方法二:吃掉touch之后的click, 使用计时器,让touch后延迟350ms再隐藏蒙层 方法三:使用fastclick.js;可以直接写click事件

1.9K10

JS实现动态获取当前点击事件的id属性值

原本要实现的功能如下: 点击下图播放按钮,要弹窗播放对应的视频链接。...整个页面是通过ajax请求最新的4部视频进行填充完成,视频列表又是通过template-web.js插件补上去的,所以导致所有ID值都是一样的,一开始给按钮添加一个事件,结果是所有播放按钮都是播放第一个视频...于是,想了好多办法,又把ID属性给弄成动态的ajax请求的属性值,实现了每个id不一样,接下来,因为点击播放要调用一个方法,进行解析视频播放,拼接成API+视频链接的格式在新打开的弹窗进行展示。...具体可以看下图: 要实现点击不同按钮,并且按钮ID是动态从ajax请求获取的,还要添加点击视频拼接视频链接,参考了文章,可以获取点击按钮的id值,然后使用button,将链接放在value中 Dom

25.5K20

WPF 解决 StylusPlugIn 点击穿透问题

在使用 StylusPlugIn 的时候会出现这样的坑,只要一个元素附加有 StylusPlugIn 加入到视觉树,在这个元素上面放另一个没有附加 StylusPlugIn 的元素,点击上面的元素,下面的元素的...那么就会发现在 林德熙是逗比 的元素后面进行了书写,此时在 林德熙是逗比 的元素的 Down Move 函数使用 e.Handle = true 也没有用,因为 StylusPlugIn 走的不是路由事件...这个问题就是 StylusPlugIn 点击穿透问题,虽然在元素上面放了另一个元素,但是在触摸的时候就像上面的元素不存在一样 一个解决方法是在上面的元素上创建一个空白的 StylusPlugIn 这样就可以防止点击穿透...NotifyWhenProcessed 设置如果主线程的元素可以收到触摸的方法 第一个方法是需要在其他所有元素上面添加 StylusPlugIn 有代码耦合 第二个方法需要等待主线程收到消息,在笔迹就出现点击的时候出现了闪烁...,因为触摸线程比主线程先收到点击 代码 WPF 解决 StylusPlugIn 点击穿透问题-CSDN下载 WPF 高性能笔

81310

WPF 解决 StylusPlugIn 点击穿透问题

在使用 StylusPlugIn 的时候会出现这样的坑,只要一个元素附加有 StylusPlugIn 在这个元素上面放另一个没有附加 StylusPlugIn 的元素,点击上面的元素,下面的元素的 StylusPlugIn...那么就会发现在 林德熙是逗比 的元素后面进行了书写,此时在 林德熙是逗比 的元素的 Down Move 函数使用 e.Handle = true 也没有用,因为 StylusPlugIn 走的不是路由事件...这个问题就是 StylusPlugIn 点击穿透问题,虽然在元素上面放了另一个元素,但是在触摸的时候就像上面的元素不存在一样 一个解决方法是在上面的元素上创建一个空白的 StylusPlugIn 这样就可以防止点击穿透...NotifyWhenProcessed 设置如果主线程的元素可以收到触摸的方法 第一个方法是需要在其他所有元素上面添加 StylusPlugIn 有代码耦合 第二个方法需要等待主线程收到消息,在笔迹就出现点击的时候出现了闪烁...,因为触摸线程比主线程先收到点击 代码 WPF 解决 StylusPlugIn 点击穿透问题-CSDN下载 WPF 高性能笔 ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io

76320

穿透”层的鼠标事件

标题可能不是一读让人容易明白,上张图(转载的) 需要实现如下的效果,有一个浮动层,需要层级在它之下的一个元素也能照常响应相应的事件 ?...一个100*100的元素,边框为1px solid #406c99,它有两个事件(鼠标移入、鼠标移出): onmouseover="this.style.borderColor='#f00';" onmouseout...="this.style.borderColor='#406c99';" 在不做特殊处理的情况下,它的事件将会是无法触发的,现在想让它正常触发,效果如下: ?...这种应用场景,可能会是一个新的产品上线了,需要引导用户如何去使用,会使用蒙板遮住整个页面,然后让某一元素可点击。...="en" lang="en"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.<em>js</em>

1.6K20

怎么用css属性屏蔽鼠标事件(鼠标点击穿透上层元素)

现在的情况是只有点击日期内容框空白区域时,才会响应点击事件显示下拉日期菜单。...而这个icon图标我是绝对定位到日期内容框中的,它的图层维度是高于日期内容框的,点击icon图标时是不会响应点击事件的。我的第一个反应是事件点击穿透,但是该怎么实现?...懵逼的我一顿操作猛如虎,开启面向谷歌编程大法… 事实证明访问外国网站很重要,谷歌精准 > 百度精准,再次吐槽百度的广告… 为了解决被icon图标遮盖住的内容框区域也能响应点击事件,可以使用poniter-events...Safari:6.0 Android Browser:2.1+ Android Chrome:18.0+ 看到这里,基本上就能解决我这次所遇到的问题了: 解决完问题,又有个新的疑惑冒了出来,除了让鼠标点击穿透外层遮层外...考虑到none值的作用,应该可以取消掉事件点击行为。比如:使a标签链接不可点击、避免按钮多次点击、表单重复提交等。除此以外,肯定还有很多其他应用,可以通过属性值去发掘。

1.6K20
领券