Javascript:鼠标单击相对于元素的坐标

时间:2014-03-05 20:00:19

标签: javascript dom javascript-events cross-browser

我需要获取相对于目标元素的鼠标单击事件的坐标。也就是说,我正在寻找offsetXoffsetY,但我知道在不同浏览器中实现这些属性非常不一致。

我发现的大多数解决方案都涉及迭代元素的父节点,添加偏移量等。

然而根据this website,这些坐标可以很容易地计算如下:

var rect    = targetEl.getBoundingClientRect(),
    offsetX = ev.clientX - rect.left,
    offsetY = ev.clientY - rect.top;

在不同的浏览器中使用是否安全?我应该注意哪些恐怖故事?

注意:我不想为此使用JQuery或类似的东西。

1 个答案:

答案 0 :(得分:0)

最新版本的浏览器(如Mozilla Firefox,Google Chrome,Opera,Safari等)不会出现太多问题。但旧版浏览器(尤其是Internet Explorer)可能存在问题。