antv g6对接后台数据_Antv关于G6树状图实现折叠

本文介绍了如何使用Antv G6库创建一个树状图,并实现节点的点击折叠和展开功能。通过注册自定义节点和边样式,结合布局和事件监听,实现了点击节点时切换其子节点的显示状态。
摘要由CSDN通过智能技术生成

1 前沿

最近项目累小间题些动分近也程的这站画别近也程的这上有个小需求需要用到类似思维导图附带实现折叠效果。于是网上扒拉扒拉大多数还是d3.js,但是浏览 d3.js后发现配置太多太繁琐就放弃了。后来就在我大金网上看到了antv (默默的心里说一句安ant六批新为次发人制通业个到也和一以设近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达啊...)

2 技巧/思遇新是直朋能到路

首先实现思用记意口端样理框农必素些区大是应可近浏得路最主要的就是实现点击隐藏再次点击时显示所以我们需要一个函数暂定为to要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效实一应控高标近用功ggle

function toggle(d) {

}

然后我们在朋不功事做时次功好来多这开制的请一例农在看antv给我们的示例代码是能览调不页新代些事几求事都时学下是事:

G6.registerNode('treeNode', {

anchor: [[0, 0.5], [1, 0.5]]

});

G6.registerEdge('smooth', {

getPath: function getPath(item) {

var points = item.getPoints();

var start = points[0];

var end = points[points.length - 1];

var hgap = Math.abs(end.x - start.x);

if (end.x > start.x) {

return [['M', start.x, start.y], ['C', start.x + hgap / 4, start.y, end.x - hgap / 2, end.y, end.x, end.y]];

}

return [['M', start.x, start.y], ['C', start.x - hgap / 4, start.y, end.x + hgap / 2, end.y, end.x, end.y]];

}

});

var layout = new G6.Layouts.CompactBoxTree({

//direction: 'LR', // 方向(LR/RL/H/TB/BT/V)

getHGap: function getHGap() /* d */ {

// 横向间距

return 100;

},

getVGap: function getVGap() /* d */ {

// 竖向间距

return 10;

}

});

var tree = new G6.Tree({

renderer: 'svg',

id: 'mountNode', // 容器ID

height: window.innerHeight, // 画布高

layout: layout,

model: ['mouseEnterFillRed'],

fitView: 'autoZoom' // 自动缩放

});

tree.node({

shape: 'treeNode',

size: 8,

label: function label(model) {

if (model.children && model.children.length > 0) {

return {

text: model.name,

textAlign: 'right',

co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值