比如说我有两个div,如下:
<div id="div1">
<div id="div2"></div>
</div>
我在div2中添加一个click事件,希望获得事件发生时鼠标相对于div2左上角的坐标。在网上找了一下,说是用e.offsetX和e.offsetY,但是我发现在Chrome里面是正常的,但是在IE里面alert出来的是距离div1左上角的坐标。求解。iejavajs
<div id="div1">
<div id="div2"></div>
</div>
我在div2中添加一个click事件,希望获得事件发生时鼠标相对于div2左上角的坐标。在网上找了一下,说是用e.offsetX和e.offsetY,但是我发现在Chrome里面是正常的,但是在IE里面alert出来的是距离div1左上角的坐标。求解。iejavajs
document.getElementById('div2').onclick = function(e) {
e = window.event || e;
var result = {};
if(e.offsetX){
result = {
top : e.offsetY,
left : e.offsetX
}
}else{
var offsetParentTop = this.offsetTop;
var offsetParentLeft= this.offsetLeft;
var offsetParent = this.offsetParent;
while(offsetParent!=document.body){
offsetParentTop += offsetParent.offsetTop;
offsetParentLeft += offsetParent.offsetLeft;
offsetParent = offsetParent.offsetParent;
}
var offsetPageTop = e.clientY,offsetPageLeft = e.clientX;
result = {
top : offsetPageTop - offsetParentTop,
left : offsetPageLeft - offsetParentLeft
}
}
}
没算div的边框值.