javascript - 在 Canvas 上绘图时鼠标坐标不正确

标签 javascript jquery html canvas

我想在 Canvas 上画画,但鼠标位置不对,我画画时它们似乎太靠右了。

Canvas 居中,宽度960px。

这是页面的 URL:http://passion4web.co.uk/ben/canvas/app/

我正在使用以下函数获取鼠标位置:

    function getMousePos(canvas, evt) {
        var rect = canvas.getBoundingClientRect();
        return {
          x: evt.clientX - rect.left,
          y: evt.clientY - rect.top
        };  
    }

最佳答案

Canvas 有两种不同的尺寸:

  • 页面大小
  • 图像的大小(以像素为单位)

您需要将 Canvas 大小(以像素为单位)设置为页面上的大小以获得准确的 1:1 渲染:

canvas.width = canvas.offsetWidth;
canvas.height = canvas.offsetHeight;

请记住,当您设置 canvas 对象的 width/height 成员时,图片会被清除(即使您正在设置当前存在的相同值)。

关于javascript - 在 Canvas 上绘图时鼠标坐标不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18462303/

相关文章:

javascript - React 防止焦点窃取 onClick

javascript - 如何将选项卡设置为选中

Python Mechanize 选择一个没有名字的表单

html - 如果您使用的是 WordPress 循环,如何修复 Bootstrap 中的不均匀行?

javascript - 如何在 Adob​​e Brackets IDE 中链接外部 javascript 文件?

javascript - 检测点击了哪个 anchor

javascript - Sequelize 查询获取开始和结束日期之间的所有数据

javascript - jQuery/JS : looping function load

javascript - 将 Bootstrap 弹出窗口添加到特定的 div 元素

javascript - 在 Google Maps api v3 中制作可拖动部分