在raphael中获取光标坐标

时间:2011-07-05 10:44:13

标签: javascript raphael

如何在raphaeljs库中获取鼠标光标坐标?

我正在尝试这样的事情:

rect.mousemove(function (event) {
        thisGrid.Popup.Show(event.layerX, event.layerY, ["clientX:", event.clientX, " clientY:", event.clientY, "\n", "layerX:", event.layerX, "layerY:", event.layerY, "\n",
            "pageX:", event.pageX, "pageY:", event.pageY].join(' '));

                        }
                    );

但是所有这些属性都会返回窗口相对左上角的坐标或其他东西。

这是截图

enter image description here

3 个答案:

答案 0 :(得分:13)

我也曾经有过这个问题。你需要考虑当前的div。在我的例子中,div被称为canvas。对于坐标,我使用了以下内容:

posx = e.pageX - $(document).scrollLeft() - $('#canvas').offset().left;
posy = e.pageY - $(document).scrollTop() - $('#canvas').offset().top;

注意:我也使用jQuery因此使用$。如果您不想使用jQuery,可以使用document.getElementById。

答案 1 :(得分:9)

如果您想要相对于div的坐标,请尝试使用event.offsetX / offsetY

答案 2 :(得分:-1)

使用事件源元素(event.srcElement)的位置进行计算