如何解决退出键后的 Dragend 事件延迟
如何在按下 escape 键取消拖动时立即触发 'dragend'
事件?
在以下示例中,开始拖动红色方块,然后按 escape 键。您会注意到按下 escape 和控制台中出现 dragend
之间的延迟(在 MacOS 上的 Chrome/Firefox/Safari 中):
document.addEventListener('dragover',function( event ) {
event.preventDefault();
},false);
document.addEventListener('dragend',function( event ) {
console.log('dragend')
},false);
#drag {
height: 50px;
width: 50px;
background: red;
}
<div id="drag" draggable="true"></div>
发生这种情况是因为元素正在以动画方式返回其原始位置。请注意,如果您在拖动时松开鼠标,则不会出现延迟/动画。这是因为将 event.preventDefault()
添加到 'dragover'
事件侦听器可以防止这种行为。
有谁知道如何在 escape 上获得与释放鼠标时相同的行为?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。