此代码适用于Google Chrome和IE,但不适用于FireFox。
function drawChildren(names) {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var ctxcolor = "#000000";
if(listeners < 1){
c.addEventListener("click", getPosition, false);
listeners = 1;
} // At the click function "getPosition" is executed
}
function getPosition(event) {
if ( event.offsetX == null ) { // Firefox
clickedX = event.layerX;
clickedY = event.layerY;
} else { // Other browsers
clickedX = event.offsetX;
clickedY = event.offsetY;
}
checkCoordinates(clickedX, clickedY);
}
答案 0 :(得分:0)
要回答上述评论中发布的问题,只要点击function getPosition()
,系统就会调用myCanvas
。 (因为您的代码显示c.addEventListener("click", getPosition, false);
)
使用鼠标位置检测代码,我不确定偏移和分层是如何工作的,但是如果你使用下面的代码,那么我知道你总是会从浏览器的边缘开始得到x和y坐标,而不是从您网站的任何元素开始:
if(evt.pageX){
var xPos = evt.pageX;
var yPos = evt.pageY;
}else if(evt.clientX){
var xPos = evt.clientX + ((document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft);
var yPos = evt.clientY + ((document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop);
}
您的代码可能与此相同,但我只想提供适用于我的代码:)