我没有使用鼠标,而是使用 Leap Motion。它是一种运动感应设备,允许使用手指、手和手势而不是鼠标。
我有绘制用户手指与屏幕相交点的代码,因此用户的手指在网页上由蓝色圆圈表示(与此代码相同:http ://schnipz.github.io/leap-motion-demos/ d3.js/index.html)。
我在网页上也有一个 Force-Directed 图,与此示例相同:bl.ocks.org/mbostock/4062045
当手指(蓝色圆圈)与节点相交时,我想允许用户“拖动”节点。
我能够让点击模拟代码工作,但是当我尝试使用 X 和 Y 位置时,例如......
function mouseSim(type, x, y)
{
var simulatedEvent = document.createEvent("MouseEvent");
simulatedEvent.initMouseEvent(type, true, true, window, 1,
x, y,
x, y, false,
false, false, false, 0/*left*/, null);
document.dispatchEvent(simulatedEvent);
console.log(type + " at " + x + ", " + y);
}
我得到了所需的控制台输出,但没有与图表发生交互。
是否可以使用非鼠标、非触摸事件与 D3.js 图进行交互?如果是这样,最有效的方法是什么?