【发布时间】:2018-02-26 10:09:05
【问题描述】:
我有一个关于拖动的非常笼统的低级问题。我特别有兴趣了解究竟是什么决定了在 D3.js v4 中何时触发拖动事件。例如,如果我非常缓慢地移动拖动的对象,拖动事件将触发我移动的每个像素。但是,如果我移动得相当快,拖动事件不会与我移动的像素数量一一对应地触发。
我目前正在研究这个问题,主要是使用 Chrome 开发性能选项卡;我认为这将(希望)给我一些见识。我也知道有一些去抖动功能可以限制事件被调用的次数;但是,我不知道或看到 D3 有这个。我认为减少对拖动的调用的原因可能与 Chrome 内部的某些东西有关,也许它只是使用某种算法根据鼠标移动的速度来调用拖动。这似乎是最有可能的答案,但如果有人能给我一些关于这种行为是如何确定的见解,我将不胜感激。
最后一件事:我还知道,有时当您快速移动鼠标光标以使其“退出”您正在拖动的对象时,不应调用拖动事件。但是,即使我没有“离开”我正在拖动的对象,根据我移动鼠标光标的速度,对拖动的调用仍然更少。
附言当我使用 D3 时,这个问题很可能只是一般与拖动有关,而不是特定于 D3...
【问题讨论】:
标签: javascript performance events d3.js onmousemove