gpt4 book ai didi

Javascript InfoVis Spacetree 单个节点样式

转载 作者:行者123 更新时间:2023-11-29 16:26:45 33 4
gpt4 key购买 nike

我是 javascript 编码新手 - 谁能帮我解决 InfoVis太空树?我试图将某一级别节点的宽度和高度设置为小于其余节点。看起来我把它放在了 data: {} 中,但是当我尝试 data:{"$height":"30"} 时,它搞砸了整个树。 .

最佳答案

我这样做的方法是将一些信息放入这些特殊节点的数据数组中,然后在绘制它时,我将仅在这些节点上进行修改。

数据:

var json = 
{
'id':'id0.0',
'name':'Root',
'data':
{
'mytype':'1'
},

'children':
[
{
'id':'id1.0',
'name':'Node 1.0',
'data':
{
'mytype':'2'
},

'children':
[
{
'id':'id2.0',
'name':'Node 2.0'
},

{
'id':'id2.1',
'name':'Node 2.1'
},

{
'id':'id2.2',
'name':'Node 2.2'
}
]
}
]
};

所以你可以看到某个节点有一个名为mytype的数据元素,在绘制树时你必须注意这些。为此,您必须实现 onBeforePlotNode 函数。此方法对于在绘制节点之前更改节点样式非常有用。

以下是用于处理特殊节点的 SpaceTree Creation 的代码:

myTree = new $jit.ST({
//id of viz container element
injectInto: 'MyGraph',
orientation: 'top',
duration: 200,
transition: $jit.Trans.Quart.easeInOut,
levelDistance: 50,


//enable panning
Navigation:
{
enable:true,
panning:true,
zooming:20
},


//set node and edge styles
//set overridable=true for styling individual
//nodes or edges
Node: {
overridable: true,
autoWidth: true,
autoHeight: true,
type: 'rectangle'
},

Edge: {
type: 'bezier',
overridable: true
},


onBeforePlotNode: function(node)
{
//if(node.data.class == 'node')
if(node.data.mytype == '2')
{
node.data.$height = 60;
}
},
});

您可以看到 OnBeforePlotNode 正在查看节点的数据以查看其是否特殊。然后您就可以只修改这些节点。

关于Javascript InfoVis Spacetree 单个节点样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5519097/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com