簡體   English   中英

鼠標單擊相對於父div左上角的坐標

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM