【问题标题】:Drawing on html canvas through javascript/jquery, how do I fix this mouse x/y glitch? [closed]通过 javascript/jquery 在 html 画布上绘图,如何修复此鼠标 x/y 故障? [关闭]
【发布时间】:2017-03-17 20:38:55
【问题描述】:

我一直在寻找这个问题的答案,但我无法弄清楚我做错了什么......

这是我在空闲时间第一次尝试做这样的事情,这样我就可以利用我学到的东西来构建一个实际的工具供我的公司使用。

引用的代码在 github 上,这里:My Github Repo 抱歉,我没有将它托管在任何地方进行实时测试。如果有人知道我可以把它放在哪里更容易回答这个问题,请告诉我。

在任何情况下,它都会创建一个画布,使用 javascript 绘制缩放到画布的地图图像,并在您单击画布时绘制一个矩形。但是由于某种原因,除非您单击 0,0,否则我无法弄清楚为什么矩形没有正确绘制在光标上。在您单击的进一步向右或向下有某种附加偏移。我试过检查控制台中的事件数据并在网上到处搜索可能导致它的原因,但我不知道。

如果您有任何建议,我将不胜感激!谢谢!

【问题讨论】:

  • 能否在您的问题中包含来自您的 github 存储库的相关代码? Stack Overflow 的政策是问题和答案应尽可能自给自足,并且仅在不可避免时使用外部资源。
  • 我写了一个不好的问题。对不起。

标签: javascript jquery html canvas draw


【解决方案1】:

请注意,您在 CSS 中缩放画布,因此其坐标不再匹配屏幕坐标。

将 CSS 更改为时

canvas {
  width: 800px;  /* same as the HTML attribute */
  height: 600px; /* same as the HTML attribute */
}

坐标计算可以用这个来完成:

var posx = e.pageX - position.left, posy = e.pageY - position.top;

【讨论】:

  • 非常感谢!这对我来说是一个愚蠢的初学者错误!非常感谢您的帮助,即使我提出了一个违反规则的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 2017-10-06
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多