我怎么将clientx和clientY工作在我的"拖"事件处理程序上的火狐?
-
23-08-2019 - |
题
火狐3.x似乎有一种错误的时候听到"ondrag"的事件。对象的事件没有报告对象的位置被拖动,clientx,clientY和其他偏移的屏幕都设置为零。这是很成问题,因为我想做一个代理元件基于元件被拖动和使用的课程,将clientx和clientY调整其位置。
我知道,有很酷的东西周围,例如setDragImage在HTML5但我想提供一般的抽象地DD之间的浏览器。
错误代码:
document.addEventListener('drag', function(e) {
console.log(e.clientX); // always Zero
}, false);
注:这个问题不会发生在其他事件(dragstart,dragover)和鼠标移动事件无法被捕捉的话,拖的东西.
请帮帮忙!
解决方案
我发现了一个解决方案,我已经放置在收听者的“的dragover”事件在文档级别,现在我得到正确的X和Y属性,我可以通过一个全局共享的对象暴露。
其他提示
HTML 5 中的拖动事件在当今的浏览器中尚未完全发挥作用。要模拟拖放情况,您应该使用:
- 添加 onmousedown 事件,将 var 设置为 true。
- 添加 onmouseup 事件,并将 var 设置为 false。
- 添加一个 onmousemove 事件,检查该 var 是否为 true,如果是,则根据坐标移动您的 div。
这一直对我有用。如果您遇到任何问题,请再次联系,我可以提供一些示例。
祝你好运!
不隶属于 StackOverflow