我有一個畫布繪製這樣的處理OnClick事件在JavaScript帆布和獲取它的座標
<div id="canvas" style="position:relative;width:600px;height:300px;" onclick="q()"></div>
我需要處理它,當點擊事件,並得到畫布上的座標,它被點擊
我有一個畫布繪製這樣的處理OnClick事件在JavaScript帆布和獲取它的座標
<div id="canvas" style="position:relative;width:600px;height:300px;" onclick="q()"></div>
我需要處理它,當點擊事件,並得到畫布上的座標,它被點擊
您需要獲取頁面的x和y座標,然後減去canvas
偏移量以使它們相對於canvas
。
function q(event) {
event = event || window.event;
var canvas = document.getElementById('canvas'),
x = event.pageX - canvas.offsetLeft,
y = event.pageY - canvas.offsetTop;
alert(x + ' ' + y);
}
您應該考慮使用onclick
HTML屬性悄悄附加事件,即而不是。
使用jQuery,您可以直接閱讀.pageX和.pageY屬性。
http://docs.jquery.com/Tutorials:Mouse_Position#Where_did_they_click_that_div.3F
由於HTML5,剛剛拿到layerX和事件本身的屬性layerY。太好了!
甜!這是一個很棒的解決方案。任何人都知道一個缺點? – 2015-07-07 03:50:29
謝謝!但是,「不顯眼」的意思是什麼? – 2011-06-10 00:44:25
@Ahmad在答案中解釋。在JavaScript代碼中使用'attachEvent()'和'addEventListener()'組合。不要混合行爲和數據層。 – alex 2011-06-10 00:55:40