2012-06-20 82 views
0

我将鼠标移动到div上,我想知道鼠标相对于div原点的坐标。 (左上角)DIV中的相对鼠标坐标 - javascript

我期望mousemove事件包含鼠标的相对(客户端?)坐标,但显然它没有。

在Firefox中,例如,没有事件属性的*含有相对坐标

我缺少的东西?

* clientX,Y - pageX属性,Y - screenX,Y

回答

0

您不会错过任何东西,但你需要计算相对坐标自己。

东西沿着这些线路应该这样做(与您要使用获得的位置W/E代码替代的jQuery):

var pos = $('div').position(); 
var relX = event.pageX - pos.left; 
var relY = event.pageY - pos.top; 

另请参阅:JS: mouse coordinates relative to an element覆盖一些细节上支持其他浏览器(尽管如果你使用的jquery可能不需要)。

+0

谢谢!我会尝试的。我仍然很好奇。我是否认为'客户'坐标应该是相对于产生事件的元素? –

+1

@johnsmith https://developer.mozilla.org/en/DOM/MouseEvent,特别是http://www.w3.org/TR/DOM-Level-3-Events/#events-MouseEvent-clientX – Phrogz

+0

Phrogz,谢谢。那么,似乎标准并没有做我想做的事情= P –