D3 天眼查 股权穿透 股权结构,默认第一行,异步添加,加减号居中,拖拽,缩放, hover。

因为公司项目需求,在以下相关博客的的基础上,进行了修改。 

​​​​​​D3 天眼查 股权穿透 股权结构

1.鼠标经过路径高亮。

 

2. 加减号优化,很多文章都是直接text标签渲染 “+”“-”,导致无法居中。 以下优化案例。

加号是用path实现的:

let plus = "M-6 -1.5 H-1.5 V-6 H1.5 V-1.5 H6 V1.5 H1.5 V6 H-1.5 V1.5 H-6 Z";

let reduce = "M-6 -1.5 H6 V1.5 H-6 Z";

3.点击加号异步加载。

function click(d) {
          let target = d3.select(this);
          let path = target.select("path")[0][0];
          let hasChildren = d.children.length > 0;
          let state = hasChildren ? plus : reduce;
          d3.select(path).attr("d", state);
          if (hasChildren) {
            d.children = [];
            update(d, originalData, g);
          } else {
            var companyName = d.companyName;
            var Pdata = {
              upperName: companyName,
              parentName: rootName,
              type: d.type,
              level: d.level + 1
            };
            getStockRightLevel(Pdata).then(res => {
              d.children = res.data;
              d.children.forEach(collapse);
              update(d, originalData, g);
            });
          }
        }

记录几个比较关键的D3 api方法,真想实现这个功能,必须的去看D3的API,加上svg基本的了解,看几个博客真解决不了需求  - -!

d3.layout.tree().nodeSize();

tree.nodes();

tree.links();

each();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值