在 HTML5 本机拖动期间检测 keydown/up 事件
我有一个可以使用本机 HTML5 拖动的元素。它具有分配给它的dragstart、drag 和dragend 事件侦听器。此外,我还为 document.body 元素分配了 keydown 和 keyup 事件侦听器。
当拖动可拖动元素时,ondrag 事件将按预期触发。当我按 &在不拖动任何东西的情况下释放任意键,将触发 document.body keydown/up 事件。
但是,如果我在执行 ondrag 时按下/向上键,则 document.body keydown/up 事件将不会触发。有什么解决方法/黑客吗?
I've an element that can be dragged using native HTML5. It has dragstart, drag, and dragend event listeners assigned to it. In addition, I also have keydown and keyup event listeners assigned to document.body element.
When dragging the draggable element, ondrag event will fire as expected. When I press & release any key while not dragging anything, document.body keydown/up events will fire.
However, if I keydown/up while performing ondrag, the document.body keydown/up event will not fire. Is there any workaround/hack to this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
回答我自己的问题...来自拖动操作 - MDN:
在 HTML5 原生拖动中,唯一可以触发任何操作的按键是修饰键。在 Mac 上,它是选项键和控制键。操作是通过 event.dataTransfer.effectAllowed 捕获的,而不是按键或按键事件。
Answering my own questions... From Drag Operations - MDN:
On HTML5 native drag, the only key press that can trigger anything is the modifier keys. On Mac, it's the option key and the control key. Action is captured via event.dataTransfer.effectAllowed, not keypress or keydown events.