javascript - 如何防止 d3.js 强制布局在恢复/重启时脉动/弹跳

标签 javascript d3.js force-layout

我有一个 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/

相关文章:

javascript - D3 强制布局 : Collapse Subset of Child Nodes (Opacity Change)

javascript - 从 d3 中的节点中删除文本

javascript - 如何在Jquery中获取响应 session cookie

javascript - 在 Javascript 对象中保持未知项目计数

javascript - 获取iron-data-table来渲染演示数据

javascript - 使用 d3 绘制堆积条形图

javascript - 动态行值错误地更新到 mysql php

javascript - 在 JavaScript 中,f 是什么意思?

javascript - 在c3js中使用字符串列作为工具提示

javascript - 静态 D3 力导向图性能