当前位置: 首页 > 面试题库 >

JavaScript如何获得在画布元素上单击鼠标的坐标?

龙高超
2023-03-14
问题内容

将click事件处理程序添加到canvas元素(将返回click的x和y坐标)(相对于canvas元素)的最简单方法是什么?

不需要旧版浏览器兼容性,Safari,Opera和Firefox都可以。


问题答案:

这个答案很老了,它使用检查不再需要的旧浏览器,因为clientXclientY属性在所有当前浏览器中都有效。您可能想查看PatriquesAnswer,以获得更简单,最新的解决方案。

最初的答案:
正如我当时发现的一篇文章中所述,但不再存在:

var x;
var y;
if (e.pageX || e.pageY) { 
  x = e.pageX;
  y = e.pageY;
}
else { 
  x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; 
  y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; 
} 
x -= gCanvasElement.offsetLeft;
y -= gCanvasElement.offsetTop;

对我来说工作得很好。



 类似资料:
  • 问题内容: 我的页面上有一个canvas元素,我想单击此画布中的特定(x,y)坐标。我使用watir-webdriver: 但是此代码仅单击画布的中心,而不单击指定的(x,y)坐标。怎么了 UPD:所以现在我使用以下代码: 但是它仍然单击画布的中心,而不单击指定的(x,y)坐标…有什么想法吗? UPD 2:这仅是FIREFOX问题(在Chrome中运行良好) 问题答案: 运动 移动到指定元素的中心

  • 现在我有一个应用程序,可以让用户单击按钮浏览用作画布背景的图片。我想这样做,如果用户单击画布上的某个地方,则在该点放置一个节点。我假设我需要获取鼠标坐标。有没有一个简单的方法可以调用将节点放置在鼠标单击位置,或者我必须在这个链接中选择路线:WPF-使用鼠标事件在画布上绘图?提前谢谢。 编辑:添加了我尝试制作椭圆的代码。不过它不起作用,而且我不确定如何使用鼠标点击椭圆的坐标。我知道对于一行来说,它只

  • 问题内容: 我想知道是否可以在Python(Windows)中显示某些图片,然后用鼠标单击该图片并获得此点击相对于图片边缘的坐标。 谢谢! 问题答案: 是的,一旦您了解了tkinter,这是可能并且非常容易的,这是一个快速脚本: 未经编辑的它将使用默认的窗口坐标系打印到控制台。画布小部件将左上角设为0,0点,因此您可能需要弄混printcoords函数。要获取加载的图片尺寸,可以使用canvas.

  • 我们体验一下Events类吧!为了使其尽量简单,我们使用Events类的getMousePos()获取鼠标光标的坐标,并在画布的左上角显示出来。getMousePos()方法返回相对于画布的坐标,它会考虑画布相对于页面的偏移,以及页面的滚动位置。 图6-1 画布坐标系 操作步骤 按照以下步骤,在每次鼠标移动时,获取画布上的鼠标坐标,并在画布的左上角显示出来: 1. 链接到Events类: <sc

  • 问题内容: 我的html元素具有以下事件处理程序 单击时,我需要在#seek-bar上找到鼠标的位置。我以为上面的代码应该可以工作,但是结果不正确 问题答案: 您是否要简单地将鼠标指针定位到元素(或)的位置, 编辑: 1),给你鼠标位置的相关文件! 2):给出元素的偏移位置 3):它为您提供元素的相对位置,即 考虑一个元素嵌入另一个元素内 例如 : HTML JavaScript

  • 问题内容: 作为我对登录功能的Selenium测试的一部分,我想通过识别按钮的坐标并指示Selenium单击这些坐标来单击按钮。无需标识元素本身即可完成此操作(通过id,xpath等)。 我知道还有其他更有效的方式来运行click命令,但是我希望专门使用这种方法来最好地匹配用户体验。谢谢。 问题答案: 硒不会让你这样做。