Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的合作伙伴是楠,楠_Javascript_Nan_Mouse Position - Fatal编程技术网

Javascript 我的合作伙伴是楠,楠

Javascript 我的合作伙伴是楠,楠,javascript,nan,mouse-position,Javascript,Nan,Mouse Position,我试图在画布上获得鼠标位置的坐标。但我得到的只是楠,楠 var canvasBg = document.getElementById('canvasBg'); var ctxBg = canvasBg.getContext('2d'); var mouseX; var mouseY; canvasBg.addEventListener('mousemove', mouseMoved, false); canvasBg.addEventListener('click', mouseClicke

我试图在画布上获得鼠标位置的坐标。但我得到的只是楠,楠

var canvasBg = document.getElementById('canvasBg');
var ctxBg = canvasBg.getContext('2d');

var mouseX;
var mouseY;

canvasBg.addEventListener('mousemove', mouseMoved, false);
canvasBg.addEventListener('click', mouseClicked, false);

function mouseMoved(e) {

mouseX = e.pageX - canvasBg.pageOffsetLeft;
mouseY = e.pageY - canvasBg.pageOffsetTop;
document.getElementById('mouseCoors').innerHTML = 'X: ' + mouseX + ' Y: ' + mouseY;

}

function mouseClicked(e) {

    alert( mouseX + "," + mouseY);

}

您可以采用更简单的方法:

function mouseMoved(e) {
    mouseX = e.offsetX;
    mouseY = e.offsetY;
    document.getElementById('mouseCoors').innerHTML = 'X: ' + mouseX + ' Y: ' + mouseY;
}

function mouseClicked(e) {
    alert( e.offsetX + "," + e.offsetY);
}

这是另一个解决方案

为您的
mouseMoved
功能尝试以下操作:

function mouseMoved(e) {
    mouseX = e.x - canvasBg.offsetLeft;
    mouseY = e.y - canvasBg.offsetTop;

    document.getElementById('mouseCoors').innerHTML = 'X: ' + mouseX + ' Y: ' + mouseY;
}
完整代码的实时预览:


要回答原始代码不起作用的原因,pageOffsetLeft和pageOffsetTop不存在。当你试图从一个数字中减去未定义的数字时,你得到的(适当地)不是一个数字。