antv x6沿边运动的动画

实现效果

要实现什么时候开始有运动小圆球的出现:1.在graph添加了内容之后,也就是可以看到图之后,让小圆球流动起来。2.再点击node的时候增加一个圆球。

需求 1实现原理是,graph.fromJSON(this.graphData);添加之后,使用getNodes()获取所有节点,可根据节点存入的标识字段,找出默认开始的节点,代码如下:(这里可以看到一个自定义方法的使用graph.on("signal")),其中会利用getTargetCell找到节点的下一个连接点,继续添加动画小球。)

// 找到图里面的起始点
    graph.getNodes().filter((node) => {
      const data = node.getData();
      if (data && data.start) {
        trigger(start);
      }
});
 // 起始函数
    const trigger = (start) => {
      graph.trigger("signal", start);
      if (!manual) {
        setTimeout(trigger, 5000);
      }
    };
graph.on("signal", (cell) => {
      if (cell.isEdge()) {
        const view = graph.findViewByCell(cell);
        if (view) {
          const token = Vector.create("circle", { r: 6, fill: "#1A7AD6" });
          const target = cell.getTargetCell();
          setTimeout(() => {
            view.sendToken(token.node, 2000, () => {
              if (target) {
                graph.trigger("signal", target);
              }
            });
          }, 300);
        }
      } else {
        // flash(cell);
        const edges = graph.model.getConnectedEdges(cell, {
          outgoing: true,
        });
        edges.forEach((edge) => graph.trigger("signal", edge));
      }
    });

需求2,点击节点时候添加小球。就是添加节点的点击监听,再去调用自定义方法graph.on("signal"))

graph.on("node:mousedown", ({ cell }) => {
      manual = true;
      graph.trigger("signal", cell);
    });

 前段时间有利用antv x6开发的完整编辑器代码。感兴趣的可留言,分享哟

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值