偏移鼠标单击以在其他位置发生

时间:2017-04-10 21:03:45

标签: javascript css

好的,所以我正在构建的应用程序中遇到一个非常奇怪的要求。我需要鼠标点击在光标位置右侧50像素。也就是说,当用户在一个地方点击时 - 该事件应该向右注册50像素。

这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

您可以通过阻止正文上的指针事件然后在document.onclick处理程序中暂时允许它们来执行此操作。然后使用document.elementFromPoint(取自this question)模拟点击。只需将50添加到初始点击事件的offsetX值即可。

脚本:

let $body = $('body');
$body.addClass('locked');

document.onclick = function(e) {
  $body.removeClass('locked');
  let el = document.elementFromPoint(e.offsetX + 50, e.offsetY);
  if (el) {
    el.click();
  }
  $body.addClass('locked');
};

的CSS:

body.locked {
  pointer-events: none;
}