鼠标单击相对于父div的左上角的坐标

时间:2015-01-13 20:49:42

标签: javascript html

如何让鼠标点击坐标相对于父div的左上角而不是浏览器视口的左上角?


示例:如果您点击下面代码中的#mydiv,如何获取相对于#mydiv左上角的坐标?



mydiv.onclick = function(e) { alert(e.clientX + ' ' + e.clientY); }

#blah { position: absolute; top:50px; left:60px; width: 1000px; height: 1000px; background-color: #F0F }

#mydiv { position: absolute; top:100px; left:100px; width: 100px; height: 100px; background-color: #FF0 }

<div id="blah"><div id="mydiv">Blah</div></div>
&#13;
&#13;
&#13;

已编辑(示例中存在重大错误)。

3 个答案:

答案 0 :(得分:2)

试一试:

mydiv.onclick = function(e) { 
    var offsets =element_offsets(this.parentNode);
    alert(e.clientX-offsets.left);
    alert(e.clientY-offsets.top);
}


function element_offsets(e) {
    var left = 0, top = 0;
    do {
        left += e.offsetLeft;
        top += e.offsetTop;
    } while (e = e.offsetParent);
    return { left: left, top: top };
}

答案 1 :(得分:2)

下面是我的代码,抱歉使用JQuery:但是它给出了父元素相对于#mydiv的坐标。

$('#mydiv').on('click', function(e) { 
    var offs = $('#mydiv').offset();
    alert((e.clientX - offs.left) + ' ' + (e.clientY - offs.top)); 
});

答案 2 :(得分:0)