指针事件:在移动设备上均不起作用

时间:2019-11-28 08:53:56

标签: javascript css vue.js events pointer-events

我正在为Vue开发自定义拖放模块,但发现了问题。要在向下的指针上覆盖浏览器D&D(因为我需要),我要克隆要拖动的div,然后触发pointermove(在此事件中,我在克隆的div上设置X和Y),当我向上激活指针时,该div的值将转移到拖动位置。为了在上指针事件中将元素定位到cloned(drag)div下,我使用了css属性pointer-events:none(在div上),并且在桌面上一切正常。在移动设备上,事件定位总是拖动元素。

触发事件中有console.log: logged events

2 个答案:

答案 0 :(得分:0)

现代移动浏览器改为使用“触摸操作” CSS属性。 您可以在这里阅读所有内容:https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action

只需将touch-action: none;添加到与您添加pointer-events: none;相同的元素上即可。

否则,根据您设置vue组件的方式,您可能需要侦听'touchstart'和'touchend'事件并取消它们:

<TargetElement>.addEventListener( 'touchstart', e => e.preventDefault )

答案 1 :(得分:0)

我在另一个问题中找到了我的问题的答案: How to find out the actual event.target of touchmove javascript event?

我们可以通过document.elementFromPoint( e.clientX, e.clientY );

将事件下的元素作为目标