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

Vis.js: Highlight selected node and grey out the others

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

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

谢谢!

答案只有您预期的一半:

  1. 是的,有一种快速查找邻居的方法:请参阅 getConnectedNodes methodnetwork.getConnectedNodes(nodeId) 将 return 连接节点的 id 数组;

  2. 获得这些 ID 后,您必须迭代节点并添加颜色。您可以改为 add/remove 组,但您仍然需要迭代所有节点,因为您还需要更改 non-selected-or-neighbours 节点的颜色。问题是,这是一组非常自定义的节点,默认情况下 select 上的它们没有任何变化。