javascript - 通过 javascript/jquery 在 html Canvas 上绘图,如何修复此鼠标 x/y 故障?

标签 javascript jquery html canvas draw

我一直在寻找这个问题的答案,但我不知道我做错了什么......

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

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

无论如何,它都会创建一个 Canvas ,使用 JavaScript 绘制缩放到 Canvas 的 map 图像,并在您单击 Canvas 时绘制一个矩形。但由于某种原因,我无法弄清楚为什么矩形没有在光标上绘制,除非您单击 0,0。在您单击的更右侧或下方有某种附加偏移。我尝试检查控制台中的事件数据,并在网上到处搜索可能导致该事件的原因,但我不知道。

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

最佳答案

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

将 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;

关于javascript - 通过 javascript/jquery 在 html Canvas 上绘图,如何修复此鼠标 x/y 故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42866706/

相关文章:

javascript - 使用 JQuery 调整浏览器的宽度

javascript - 在 JavaScript 中捕获选择(下拉列表)上的按键输入

javascript - 如果您选择相同的选项,则无法添加事件监听器来选择选项

javascript - javascript中的getelementsbytagname和getelementsbyname有什么区别

javascript - 嵌套 javascript 对象中的值检查(可能不存在)

javascript - 图像转换为 Base64 未显示在引导模式 Canvas 上

Javascript setInterval 适用于所有元素(多个计数器)

javascript - 在 JS 中编辑服务器端文件

javascript - 将 MQTT NPM 模块导入 NativeScript

jquery - 使用 jquery 取消选中单选按钮列表