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

5
我正在使用vis.js,我的一个任务是实现以下行为:当我选择一个节点时,该节点及其邻居必须被突出显示。同时,所有其他节点必须具有“变灰”的效果。 查看vis.js展示时,我看到了这个网址:https://kenedict.com/networks/startups/,这正是我想要的效果。
问题是...我如何轻松地实现这种效果?我真的需要在图形中迭代所有节点并更改它们的颜色属性吗?
谢谢!

简而言之:据我所知,是的。我的网络中也有同样的功能,我也这么做。你可以尝试优化一下,不要将每个节点变灰,而是在选项中将所有节点的颜色属性设置为灰色,然后只对邻居进行着色...但是,这仍然不是一件容易的事情... - João Menighin
1个回答

6
答案可能只有你预计的一半那么长:
  1. 是的,有一种快速找到邻居节点的方法:参见getConnectedNodes 方法network.getConnectedNodes(nodeId)将返回一个由连接节点id组成的数组;

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


我原以为可能有一个隐藏的设置或者已经实现了这个功能的函数。那我就自己来做吧 :D 谢谢你的回答。 - Adrian Pop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接