2014-03-05 51 views
1

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

大多数我已经找到了解决方案,包括遍历元素的父母,加入偏移等

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

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

是这可以安全地用于不同的浏览器?任何我应该知道的恐怖故事?

注:我不想使用JQuery或类似的。

回答

0

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

+0

是的,'可能有问题'是我所问的部分。你是否知道任何具体问题? – Grodriguez

+0

IE版本9以下是我的噩梦。此外,Firefox版本低于15或16。但Firefox开发人员正在通过快速添加功能和修复错误来实现浏览器完整性。如果需要,请检查IE-9版本。 – nuke1010