基于d3(v5.x)/jquery和svg,初步实现流程图和思维导图

基于d3(v5.x)(主要用到选择器)或者jquery(也是主要用选择器)实现初步元素之间连线,因为在做流程图和思维导图用到的主要技术就是元素之间的连线,通过svg可以将dom元素连接起来。经过此次编写个人认为主要是坐标的计算。在通过svg里面的line或者path画线即可。

下面为实现的代码(代码里有注释)和示意图。仅供参考(如果能帮到别人当然更好)。

下图所示,左边的div里面的元素都可以拖动到右边的div里面(右边div自动过滤重复元素),并且两侧对应连线。

因为只实现js部分所以没有样式。看上去很low。。。。




<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
<script src="https://d3js.org/d3.v5.js"></script>
    <title>my-project</title>
</head>
<body>
<script>
 var data = [
        {
          number: "num1",
          numberChild: [
            { child: "child1" },
            { child: "child2" },
            { child: "child3" }
          ]
        },
        { number: "num2" },
        { number: "num3" }
      ];


      // console.log(data);
      //画图区域
      var basefram ="<div class='basefram' id='basefram' style='width:100%;height:400px;position:relative;top:0;left:0;z-index:1;border:1px solid #ccc;background:#ccc;'></div>";
      d3.select("body").html(basefram);

      //创建第一个div(添加元素拖动)
      initmain(data);

      //创建第二个div
      initsecond(data);

      function initmain(array) {
        var parent = document.getElementById("basefram"); //添加 div
        var div 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值