d3.js v4将视口移动到特定节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了d3.js v4将视口移动到特定节点相关的知识,希望对你有一定的参考价值。

我使用d3.js v4来构建力导向图,就像在基本示例中一样。我还创建了输入字段,用户可以在其中键入节点名称。然后我像这样搜索匹配的circle元素:

findNode(name) {
    let theNode = this.d3Svg.selectAll('circle').filter(function(d) {
      return d.name == name;
    });
}

之后,我想将视口移动到foundNode。我怎样才能做到这一点?

试过这个:this.d3.zoom().translateTo(theNode, theNode.x, theNode.y);但没有任何反应。以下是console.log('theNode: ',theNode)所说的:

thisNode

我也找到了similar question,但在那里使用了一些旧版本的d3。

答案

Here是解决方案。以下代码将视口带到中心:

svg.transition()
          .duration(750)
          .call(zoom.transform, d3.zoomIdentity.translate([width / 2, height / 2]));

以上是关于d3.js v4将视口移动到特定节点的主要内容,如果未能解决你的问题,请参考以下文章

如何在 d3.js 中同时自动移动节点和链接

d3.js - v3 和 v4 - 输入和更新差异

D3.js使用过程中的常见问题(D3版本D3V4)

了解 D3.js 如何将数据绑定到节点

用D3.js画的人物关系demo

d3.js - 在力有向图组上添加背景矩形