如何在基于x-y坐标的Javascript中以编程方式单击按钮

如何在基于x-y坐标的Javascript中以编程方式单击按钮,javascript,Javascript,基本上,我希望在一些HTML上覆盖画布,但仍然能够单击下面的元素,比如按钮或链接 我能够得到画布上点击的x-y坐标。有没有办法用x-y坐标以编程方式触发下面的按钮单击?试试这个: document.elementFromPoint(x, y).dispatchEvent(new MouseEvent("click", {bubbles: true})); document.element frompoint50,50.dispatchEventnew MouseEvent

基本上,我希望在一些HTML上覆盖画布,但仍然能够单击下面的元素,比如按钮或链接

我能够得到画布上点击的x-y坐标。有没有办法用x-y坐标以编程方式触发下面的按钮单击?

试试这个:

document.elementFromPoint(x, y).dispatchEvent(new MouseEvent("click", {bubbles: true}));
document.element frompoint50,50.dispatchEventnew MouseEventclick,{bubbles:true}; div{ 高度:100px; 宽度:100px; 背景:红色; } 试试这个:

document.elementFromPoint(x, y).dispatchEvent(new MouseEvent("click", {bubbles: true}));
document.element frompoint50,50.dispatchEventnew MouseEventclick,{bubbles:true}; div{ 高度:100px; 宽度:100px; 背景:红色; }
出于好奇:一个按钮有必要吗?当画布在特定坐标内单击时,您不能直接执行该函数吗?这是否回答了您的问题?我想这是真的,但理想情况下,我希望动态地传播点击,而不必在有新按钮或按钮移动时重新指定“可点击”区域。然后,如果不需要在画布上检测光标事件,请在CSS中使用pilchard建议的重复画布{pointer events:none;}。否则,您需要将其与x、y单击坐标进行比较,出于好奇:按钮是否有必要?当画布在特定坐标内单击时,您不能直接执行该函数吗?这是否回答了您的问题?我想这是真的,但理想情况下,我希望动态地传播点击,而不必在有新按钮或按钮移动时重新指定“可点击”区域。然后,如果不需要在画布上检测光标事件,请在CSS中使用pilchard建议的重复画布{pointer events:none;}。否则,您将需要将其与x,y单击坐标进行比较,嘿!谢谢你的回复,这就是我一直在寻找的,我意识到它返回的是ontop上的画布,而不是画布下面的按钮。有办法修复它吗?好的,解决了!我使用elementsFromPoint而不是elementFromPoint,它返回了一个列表,唯一粗略的部分是我这样做的方式是访问我要查找的元素,在本例中是第二个elementHey!谢谢你的回复,这就是我一直在寻找的,我意识到它返回的是ontop上的画布,而不是画布下面的按钮。有办法修复它吗?好的,解决了!我使用elementsFromPoint而不是elementFromPoint,它返回了一个列表,唯一粗略的部分是我这样做的方式是访问我要查找的元素,在本例中是第二个元素