gojs-设置流动的连接线

gojs,是一款前端展示拓扑图的插件,它遵循自己的语法,因为他的功能丰富,官网上也可以看到许多例子,珊妹觉得不是一款很容易上手的前端插件,需要一点点挖掘它的功能,但每次发现它的新功能,对它的认可度都会+1.

今天我们来设置他的流动的连接线:(珊妹这里提供两个方法,因为学习过程中发现破解版的go.js里不支持Animation的方法)

方法一:

珊妹是拿官网里最简单的例子来学习的,因为多余的代码少,更能清楚的知道每段代码的意义;

1.首先在myDiagram.linkTemplate的设置里添加代码:

$(go.Shape, { isPanelMain: true, stroke: "lightgreen", strokeWidth: 1 }),

$(go.Shape, { isPanelMain: true, stroke: "lightblue", strokeWidth: 5, name: "PIPE", strokeDashArray: [5, 70] }),

如图:

我来给大家解释一下,流动的连接线需要设置两个颜色来看它流动的状态,如果普通的一根一个颜色的线是看不出来的,PIPE就是设置流动的管道, strokeDashArray的两个参数含义分别是:5像素长度,间距为70像素。效果如图:

  

2.在init方法的最后添加代码:

      var animation = new go.Animation();

      animation.easing = go.Animation.EaseLinear;

      myDiagram.links.each(function(link) {

        animation.add(link.findObject("PIPE"), "strokeDashOffset", 70, 0)

      });

      animation.runCount = Infinity;

      animation.start(); 

如图:

这里面 strokeDashOffset的两个参数的含义分别是:偏移量,相对于绘制的起点偏移的量,偏移量是一个区间的值,无论参数值多大,偏移量不会大于线段总长度,

珊妹在测试期间发现,有时流动的不流畅,分析原因可能是偏移量设置的不合适,所以这里大家根据自身可以调节一下偏移量。

方法二:

myDiagram.linkTemplate里的设置不变,但是我们不用Animation类了,这里定义一个loop( )方法,代码如下:

var opacity = 1;

var down = true;

    function loop() {

      var diagram = myDiagram;

      setTimeout(function() {

        var oldskips = diagram.skipsUndoManager;

        diagram.skipsUndoManager = true;

        diagram.links.each(function(link) {

          var shape = link.findObject("PIPE");

          var off = shape.strokeDashOffset - 3;

          // 设置(移动)笔划划动画

          shape.strokeDashOffset = (off <= 0) ? 60 : off;

          // 动画(频闪)不透明度:

          if (down) opacity = opacity - 0.01;

          else opacity = opacity + 0.003;

          if (opacity <= 0) { down = !down; opacity = 0; }

          if (opacity > 1) { down = !down; opacity = 1; }

          shape.opacity = opacity;

        });

        diagram.skipsUndoManager = oldskips;

        loop();

      }, 60);

    }

记住!!!,同样在init( )方法里调用loop( )方法,loop( )这个方法里对流动的透明度也有设置,如果大家用不到可以去掉。

好啦~~~今天的分享就到这里,关注博主不迷路,精彩内容下次继续。。。。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值