Javascript 突出显示Cytoscape JS中的多条边
我有这样一个无向图:Javascript 突出显示Cytoscape JS中的多条边,javascript,cytoscape.js,Javascript,Cytoscape.js,我有这样一个无向图: var cy = cytoscape({ container: document.getElementById('cy'), elements: [ // nodes { data: { id: 'a' } }, { data: { id: 'b' } }, { data: { id: 'c' } }, { dat
var cy = cytoscape({
container: document.getElementById('cy'),
elements: [
// nodes
{ data: { id: 'a' } },
{ data: { id: 'b' } },
{ data: { id: 'c' } },
{ data: { id: 'd' } },
// edges
{
data: {
id: 'ab',
source: 'a',
target: 'b'
}
},
{
data: {
id: 'bc',
source: 'b',
target: 'c'
}
},
{
data: {
id: 'cd',
source: 'c',
target: 'd'
}
}
],
style: [
{
selector: 'node',
style: {
shape: 'hexagon',
'background-color': 'red',
label: 'data(id)'
}
}],
layout: {
name: 'grid'
}
});
如您所见,您可以使用
c
和d
从a
转到d
。我试图实现的是,如果边缘ab
高亮显示,那么边缘bc
和cd
也将高亮显示。有办法做到这一点吗?我在网上找不到这方面的任何来源。。。谢谢。看看包含的算法,如或。从它们的输出中,您应该能够为相关边生成高亮显示
前
我不太明白你的意思。是否要高亮显示零部件中的所有边?在附近?还有别的吗?@maxkfranz我想突出显示一条路径。我实际上是在传递到节点的路径。@maxkfranz我的意思是,如果你可以从
a
到d
并且知道路径,我想高亮显示该路径上的所有节点和边。我在确定路径方面没有问题,我无法高亮显示所选路径。我添加了一个示例
var dijkstra = cy.elements().dijkstra('#an_id')
var path = dijkstra.pathTo( cy.elements('node#another_id'))
path.forEach(function(ele){
if (ele.isEdge()){
ele.addClass("class_that_has_highlight_styling")
}
})