我有一个 d3 强制布局,我偶尔会在用户交互时恢复以让节点移动一点。不幸的是,这具有每次恢复时都会反弹/脉动所有节点的不良(对我而言)效果。就好像重力暂时增加了几分之一秒,将所有节点向内拉。
要重新创建,请打开此页面 http://bl.ocks.org/mbostock/raw/4062045/ ,然后运行 force.resume()
在控制台中。您可以在 Mike Bostock 的任何 force bl.ocks 示例中看到这种效果。
有没有办法防止这种情况?我尝试将所有节点设置为固定一段时间,直到重力恢复正常,但它不起作用。
最佳答案
您可以在绘图之前运行前 x 个刻度。这会停止弹出:
const simulation = d3.forceSimulation(nodes)
.force("link", forceLink)
.force("charge", forceNode)
.force("center", d3.forceCenter())
.tick(2000) // tick 2000 times (enough for the system to rest)
.on("tick", ticked)
;
关于javascript - 如何防止 d3.js 强制布局在恢复/重启时脉动/弹跳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26536450/