0
마우스 수신기에서 마우스 좌표를 가져 오려고하지만 정의되지 않은 상태가됩니다. 마우스 리스너가 Canvas에 추가되고 있으며 리스너가 onMouseMove 함수를 트리거하고 있지만 전달되는 이벤트에는 마우스 위치에 대해 정의 된 x 또는 y 좌표가없는 것 같습니다. 나는 원인을 잘못 뭘하는지에 event.yHTML5 캔버스 마우스 수신기 좌표 Undefined
어떤 아이디어를 event.pageX, event.pageY, event.clientX, event.clientY, event.x :
나는 다음과 같은 변수를 시도했습니다 마우스 좌표가 정의되지 않은 상태가됩니까? 어떤 도움을 주셔서 감사합니다!
<script>
var boxes;
var canvas;
var context;
$(document).ready(function() {
canvas = document.getElementById("requirement_tree");
context = canvas.getContext("2d");
// Add mouse listener
canvas.addEventListener("mousemove", onMouseMove, false);
});
// Get the current position of the mouse within the provided canvas
function getMousePos(event) {
var rect = canvas.getBoundingClientRect();
if (event.pageX != undefined && event.pageY != undefined) {
x = event.pageX;
y = event.pageY;
} else {
x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
console.log("X:" + x);
console.log("Y:" + y);
return {
X: x - rect.left,
Y: y - rect.top
};
}
function onMouseMove(event) {
var mousePos = getMousePos(canvas, event);
var message = 'Mouse position: ' + mousePos.X + ',' + mousePos.Y;
context.font = '10pt Arial'
context.fillStyle = 'black';
context.textAlign = 'left';
context.clearRect(0, 0, 200, 200);
context.fillText(message, 100, 100);
}
</script>
두 번째 줄은'var rect = element.getBoundingClientRect();'이어야합니다. 그렇지 않으면 첫 번째 매개 변수는 무의미합니다. – K3N