如何从 html 元素中获取可点击点?

Posted

技术标签:

【中文标题】如何从 html 元素中获取可点击点?【英文标题】:How do get I the clickable point from a html element? 【发布时间】:2019-03-11 08:44:32 【问题描述】:

如何从 html 元素中获取相对于屏幕的 x,y 坐标? 我正在使用来自getBoundingClientRect() 的 x,y 如下所示,但正如您在打击图像中看到的那样,如果我使用将光标移动到这个 x,y 位置,则光标位于 0 和 + 按钮之间的中间,而不是5 按钮,即目标按钮。 我错过了什么?

JS代码:

var e = document.querySelector('input[id=five]');"
var r = e.getBoundingClientRect();
var x = r.x;
var y = r.y;
MoveMouseTo(x,y); // imaginary call, the real cursor move is done by C# but I can share the code, as needed.

图片:

注意:如果此附加信息可能有帮助,它是一个带有嵌入式浏览器的 C# 应用程序。

【问题讨论】:

【参考方案1】:

您可以尝试在您的元素上添加一个事件侦听器,并使用该事件来检索鼠标的坐标。

const $element = document.querySelector('input[id=five]');
$element.addEventListener('mousemove', handleMouseMove);
function handleMouseMove (event) 
  console.log('Offset from the screen coordinates', event.screenX, event.screenY);
  // The client refers to the element you are bound to;
  console.log('Offset from the client coordinates', event.clientX, event.clientY);
;

【讨论】:

【参考方案2】:
const getCoords = (e) => 
var x = e.clientX 
var y = e.clientY
var xx = e.screenX
var yy = e.screenY

console.log(x, y, "client")
console.log(xx, yy, "screen")

您需要将此函数分配给包含计算器 UI 的最外层 div 的 onmousemove 事件。这至少应该向您展示屏幕 X,Y 和客户端 X,Y 之间的区别

https://www.w3schools.com/code/tryit.asp?filename=FVXZOK1SPTR0

【讨论】:

以上是关于如何从 html 元素中获取可点击点?的主要内容,如果未能解决你的问题,请参考以下文章

如何从一系列循环元素中获取点击元素?

有个html 元素, 设置了onclick 事件,怎么在onclick绑定的函数里,获取被点击元素的id 值

如何从字符串资源中获取 AlertDialog 中的可点击超链接?

如何在可缩放滚动视图中绘制可点击的网格对象,从远程 json 数据中获取数据?

如何获取隐藏元素的宽高

jquery 点击使元素置顶