Javascript 拖动HTML元素:如果鼠标移动到div之外,如何处理?
我正在创建一个可拖动的div,如本例所示: 一切正常,但如果我快速移动鼠标,鼠标离开div,它就会停止跟随鼠标。我使用Javascript 拖动HTML元素:如果鼠标移动到div之外,如何处理?,javascript,html,Javascript,Html,我正在创建一个可拖动的div,如本例所示: 一切正常,但如果我快速移动鼠标,鼠标离开div,它就会停止跟随鼠标。我使用elem.addEventListener(“mousemove”,函数(e){/*…*/},false)
elem.addEventListener(“mousemove”,函数(e){/*…*/},false)如果我将最后一个属性更改为true,那么它仍然不能正常工作。只要鼠标在div内,div就会跟随鼠标
我想修复它,不使用JQuery,尝试将mousemove
事件放在文档上,这样它就可以捕获整个页面上的事件,而不仅仅是当鼠标悬停在div上时
这意味着,每当鼠标移动且该事件位于页面上时,都会触发该事件。您应该使用:
elem.addEventListener("mouseup", function(e) {
}, false);
elem.addEventListener("mousemove", function(e) {
}, false);
elem.addEventListener("ondragstart", function(e) {
}, false);
您可以在此处找到使用本机JavaScript实现拖放的教程:
我推荐以下HTML5解决方案
下面是JS小提琴:
此外,请查看一个成熟的HTML5解决方案:
如果您支持的浏览器是最新的,我真的会使用HTML5拖放功能。
我真的不明白你的问题(可能是JSFIDLE?)
如果要捕获离开可拖放div的鼠标,可以使用
droppableDiv.addEventListener("dragleave", function(e) {
//Do stuff here
}, false);
如果您的问题是在拖动可拖动div时什么也没有发生,请尝试在可拖动div上放置一个dragover事件
draggableDiv.addEventListener("dragover", function(e) {
//Do stuff here
}, false);
你有没有试过用mouseleave或mouseout?