使用2D激光扫描仪模拟鼠标事件

时间:2019-12-30 18:26:00

标签: javascript jquery

我有一台2D激光扫描仪放在计算机屏幕的前面。目标是与Web应用程序和小型游戏(例如乒乓球,水果忍者等)进行交互,仅使双手悬空。

在使用Python网络服务器处理完所有激光测量之后,我在javascript代码中获得了与“虚拟光标”(不是鼠标)相对应的像素中X和Y的准确位置。我还有一个小型Web应用程序,具有多个链接和可能的操作。现在,我正在尝试模拟诸如mouseenter,mouseleave,clicks等事件以与页面进行交互。

通过此简单的javascript函数,我可以轻松地将HTML元素定位在给定的X和Y位置:

var element = document.elementFromPoint(x, y);

现在我的问题是,实现“悬停”功能的最佳和最简便的方法是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

您将要检查鼠标的当前状态是否已从其先前状态移开。为此,您需要存储其先前的x和y坐标,然后查看一段时间后鼠标是否在某个阈值以下保持静止。

setInterval(hoverCheck, 500);

let previousX = null;
let previousY = null;
function hoverCheck() {

  let thr = 50; // 50 pixel threshold

  if (abs(previousX - x) < thr && abs(previousY - y) < thr) {
    let element = document.elementFromPoint(x, y);
    // Do hover stuff with element
  }

  previousX = x;
  previousY = y;
}