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

移动端touch事件影响click事件以及在touchmove添加preventDefault导致页面无法滚动的解决方法

为了解决开发者需要,建议开发者在touchstart时调用event.preventDefault,这样就可以保证内核会一起触发touchmove事件了。...可以通过调用preventDefault()方法,可以阻止后面事件的触发。...我知道event.preventDefault()会阻止a标签默认的动作(跳转到href指定的页面),但是为什么click也不触发了呢?...原来touchmove中添加event.preventDefault方法之后会阻止浏览器默认的滚动。。。...x轴和y轴的移动值,判断当前是往哪个方向滑动,如果是在x轴上滑动(左右),就调用event.preventDefault()方法,如果是在y轴上滑动(上下),就不调用event.preventDefault

3.1K20

一个Electron的设计缺陷及应对方案

问题描述 要阻止窗口关闭,必须在窗口的关闭事件中,执行preventDefault操作才行,如下代码所示: win.on("close", (e) => { e.preventDefault();...}); 然而这个preventDefault的操作,必须同步调用才能生效,所有异步调用preventDefault的操作都没有任何效果,代码如下所示: win.on("close", async (e)...(); //没有任何作用 }); 上述代码中的preventDefault操作就不会起任何作用。...开发者无法在这种异步的询问通知前执行preventDefault操作,就无法正确的阻止窗口关闭。...此时立即调用窗口的close方法,这个窗口的close事件被再次触发,因为winCanBeClosedFlag 变量已经被置为true了,所以不会执行preventDefault操作,窗口被正常关闭。

1.1K53

让 touch 系列事件触发的滚动响应更快

2背景 如果你在touchstart或touchmove事件处理函数中调用preventDefault(),这将会阻止(页面)滚动。...极个别的例子是,开发者发现(如果不在touchend事件处理函数中调用preventDefault()) click 事件被触发了。...你可以直接在应用中,通过defaultPrevented属性检查preventDefault的调用是否生效。...在更复杂的例子中,你可能需要参考下面的其中一条来解决问题: 如果你的touchstart事件的监听器中,调用了preventDefault(),为阻止触发click事件和浏览器的默认行为,请确保preventDefault...虽然仍需要为移动端的 Safari 调用preventDefault(),然而 Chrome 已经不再推荐网站依靠在touchstart 和 touchmove 事件处理函数中调用preventDefault

88820
领券