reactjs - 海图 | 网络图 - 有没有办法在单击父节点时展开叶节点?
问题描述
海图 | 网络图 - 有没有办法在单击父节点时展开叶节点?
示例代码`Highcharts.addEvent( Highcharts.Series, 'afterSetOptions', function (e) { var colors = Highcharts.getOptions().color i = 0, nodes = {};
if (
this instanceof Highcharts.seriesTypes.networkgraph &&
e.options.id === 'lang-tree'
) {
e.options.data.forEach(function (link) {
if (link[0] === 'Parent') {
nodes['Parent'] = {
id: 'Parent',
marker: {
radius: 20
}
};
nodes[link[1]] = {
id: link[1],
marker: {
radius: 10
},
color: colors[i++]
};
} else if (nodes[link[0]] && nodes[link[0]].color) {
nodes[link[1]] = {
id: link[1],
color: nodes[link[0]].color
};
}
});
e.options.nodes = Object.keys(nodes).map(function (id) {
return nodes[id];
});
}
}
);`
解决方案
目前,如果没有任何自定义,此功能无法从 API 选项中实现。
请查看此演示,您可以在其中找到一些自定义函数来折叠click
事件中的子节点:https ://jsfiddle.net/BlackLabel/9mv0ny3j/
point: {
events: {
click: function() {
var point = this;
point.linksFrom.forEach(link => {
if (link.toNode.isHidden) {
link.graphic.show();
link.toNode.graphic.css({
opacity: 1
});
link.toNode.dataLabel.css({
opacity: 1
})
link.toNode.isHidden = false;
} else {
link.graphic.hide();
link.toNode.graphic.css({
opacity: 0
});
link.toNode.dataLabel.css({
opacity: 0
})
link.toNode.isHidden = true;
}
})
}
}
},
API:https ://api.highcharts.com/highcharts/series.line.events.click
推荐阅读
- php - 未捕获的 SoapFault 异常:[Client] Function ("methodname") 不是此服务的有效方法
- python - 如何在R中对具有多个条件的值进行排序和提取?
- python - 字符串的“相关矩阵”。名义数据的相似性
- arrays - 将数组存储到 cookie 中而不破坏数组
- javascript - 提交事件时如何清除我的输入(reactJs 应用程序)
- python-3.x - 如何在 QWidget 中检测关闭主窗口
- node.js - Azure 无服务器功能:不支持输入绑定 DataType“流”
- sql - SQL 语句 - 两周后显示结果
- linux - 在 conky 中显示 fps 计数器
- vue.js - Vue.js 不使用 v-bind:src 渲染动态 img