javascript - 移动后获取 Canvas 中的鼠标位置

标签 javascript dom canvas html5-canvas mousemove

我正在使用此函数将鼠标坐标转换为 Canvas 上的坐标,但有时在向下滚动然后向上滚动后, Canvas 上的鼠标位置不匹配。这是函数:

function getMousePos(x, y) {
        var rect = document.getElementById("canvas").getBoundingClientRect();
        return {
        x: x - rect.left,
        y: y - rect.top
        };
    }

最佳答案

如果您不在 Canvas 上使用 mousemove,请使用:

$(function () { 
canvas = document.getElementById('canvas');
canvas.onmousemove = mousePos;
 });

function mousePos(e) {
    if (e.offsetX) {
        mouseX = e.offsetX;
        mouseY = e.offsetY;
    }
    else if (e.layerX) {
        mouseX = e.layerX;
        mouseY = e.layerY;
    }
}

关于javascript - 移动后获取 Canvas 中的鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16883615/

相关文章:

javascript - 如何更改 Angular 中可观察量的值?

javascript - 如何避免无法将属性 'innerHTML' 设置为 null?

javascript - 如何在模式中显示pdf而不是在react js中的新窗口中打开它

javascript - 如何更改 jquery 中选定 li 的背景?

javascript - 在 Canvas 上调整图像大小

javascript - WebDriver 下拉菜单不会保持打开状态

jQuery 访问尚未加载到 DOM 中的元素

html - 是否可以使用 CSS::after 伪元素生成 HTML div

android - 任何使捏合缩放更平滑的方法

javascript - 如何在qml中删除最后的 Canvas 颜料