我正在构建一个 Web 应用程序,其功能类似于 Adobe Photoshop 或 Illustrator 等流行软件的浮动面板功能。我正在使用 HTML5 Drag & Drop API 来执行此操作。
首先,要更新我正在拖动的面板,我正在按照这些思路做一些事情
el.style.left = (x - offsetX) + 'px';
el.style.top = (y - offsetY) + 'px';
现在,这一切都很好!但问题是我想在另一个块元素上捕获拖动事件,就像这样
dropzone.addEventListener('dragover', function() { ... }, false);
问题是,只要我更新拖动元素的位置,事件就永远不会被触发。但是当我注释掉拖动元素的重新定位时,事件确实会被触发,就像这样
// Commenting out the repositioning...
// el.style.left = (x - offsetX) + 'px';
// el.style.top = (y - offsetY) + 'px';
现在,对我来说,这感觉就像我正在拖动的元素阻碍了事件的触发。
如何继续拖动我的块元素,但同时触发dragover事件?
查看JSFiddle!
在 Chrome 36.0.1985.125 中工作
谢谢!