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