[英]Mouse click coordinates relative to the parent div's top left corner
如何獲得相對於父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>
編輯(該示例中存在一個主要錯誤)。
試試吧:
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 };
}
以下是我的代碼,抱歉使用JQuery:但是它給出了相對於#mydiv
的父元素的坐標。
$('#mydiv').on('click', function(e) {
var offs = $('#mydiv').offset();
alert((e.clientX - offs.left) + ' ' + (e.clientY - offs.top));
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.