我正在用 Raphael.js 编写一些应用程序.它应该处理鼠标拖动事件。
也就是说,当鼠标拖动结束时,我试图捕获 Raphael 的 Paper
对象(DIV
/SVG
元素,实际上)鼠标引起 drop
事件的地方。
FireFox 和 Chrome 在 event.layerX
和 event.layerY
属性方面做得很好。但是 Opera 没有这些。
它有clientX
/clientY
, offsetX
/offsetY
和pageX
/pageY
属性(最后两个名称可能有误)。但我无法创建任何算法来计算最终的鼠标位置。
请看,鼠标开始“拖动”电路符号的引脚(没有实际拖动其图像)并结束落在另一个电路符号上:
因此,Opera 在鼠标引起 drop 事件时显示类似 (5, 7) 的坐标。我假设这些是第二个引脚周围的坐标。但我不需要那些 - 使用它们我无法找到用户尝试连接的 pin。
所以,问题是:您知道在调用 drop 事件时找到鼠标光标坐标的方法吗,相对于它正在放下的父元素(例如Raphael 的 Paper
对象和/或其在所述情况下的容器)。
最佳答案
当鼠标按钮按下时,您能否在鼠标移动期间使用光标位置更新变量,并在触发放下时使用最后设置的值?
关于javascript - Opera、event.layerX/event.layerY 属性和 mouseDropped 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9453153/