D3-画布力图“闪烁”,因为单击节点时节点在错误的位置渲染

问题描述

用Canvas实现D3力图,当您放大或平移该图,然后单击一个节点时,该图将“闪烁”一秒钟。这是由于图形渲染节点在一些渲染中处于“错误”位置。

这仅在实现d3 drag()方法时发生,并且只有在更改图形的缩放/平移时才会发生。

在下面的示例中,如果放大并单击一个节点,则将另一个节点“闪烁”-将其放置在其他位置,然后返回到运行“ tick”方法时应位于的位置

但是当节点的位置没有设置时,为什么其位置会改变?

这似乎是因为它在不同位置重绘了节点,然后forceCenter()将节点重新带回,并且它很快发生并给它一个“闪光”

这是一个代码沙箱:https://codesandbox.io/s/dawn-wave-yoz1r?file=/index.html

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)