Vis.js:突出显示选定的节点并将其他节点灰显

Adr*_*Pop 5 javascript graph highlight vis.js vis.js-network

我正在使用 vis.js,我的任务之一是实现以下行为:当我选择一个节点时,该节点及其邻居必须突出显示。同时,所有其他节点必须具有“灰显”效果。看着 vis.js 展示,我看到了这个: https: //kenedict.com/networks/startups/,这正是我想要获得的。

问题是……如何轻松实现这种效果呢?我真的需要在图中的所有节点之间进行迭代并更改它们的颜色属性吗?

谢谢!

Yak*_*ovL 6

答案是你所期望的一半:

  1. 是的,有一个快速的方法来查找邻居:参见该getConnectedNodes方法network.getConnectedNodes(nodeId)将返回所连接节点的 id 数组;

  2. 获得这些 id 后,您必须迭代节点并添加颜色。您可以添加/删除组,但您仍然需要迭代所有节点,因为您还需要更改未选择或邻居节点的颜色。问题是,这是一组非常自定义的节点,默认情况下选择时它们不会发生任何更改。