在SVG中报告左键单击(并按住)鼠标的坐标

Reporting the coordinate of a left clicked (and held) mouse in SVG

本文关键字:鼠标 坐标 SVG 报告 单击      更新时间:2023-09-26

首先,我甚至不知道我想做的事情是否可能,所以请原谅我。

我已经创建了一个程序,允许在SVG中显示图形。作为其中的一部分,我希望用户能够素描笔记与他们的鼠标。

是否有一种方法来捕获鼠标坐标使用javascript(或jQuery),如果鼠标左键被按下并保持?我绞尽脑汁想弄明白的是如何捕捉这一系列的位置来生成一条路径。据我所知,如果位置发生变化,我需要在设定的时间步长抓取坐标(下面的伪代码)。

if (leftClicked)
{
   var positionArray[];
   var MC = getMouseCoordinates();
   positionArray[0] = MC;
   var i = 1;
   while(leftClicked)
   {
      if getMouseCoordinates() != MC
      {
         MC = getMouseCoordinates();
         positionArray[i] = MC;
      }
      i++;
   }
}

但是尽管阅读了几个小时,我还是找不到在JavaScript中实现这一点的方法。

我的SVG也嵌入在HTML页面中。我不知道如何将坐标报告本地化到SVG,而不是整个页面?

对不起,我知道这是一个相当模糊的问题,但我甚至不知道从哪里开始…

你应该反过来做,而不是寻找按钮按下,然后尝试跟踪鼠标,跟踪鼠标并检查鼠标是否移动,是否按下按钮。即附加一个鼠标移动事件处理程序并检查button = 0

这个例子跟踪鼠标移动事件,虽然它不检查按钮是否被按下,但您必须自己使用这里的信息添加