使用Vivus.js和GSAP为最初隐藏的元素设置动画

时间:2018-05-18 12:37:54

标签: javascript jquery animation gsap vivus

所以我有这个GSAP时间轴,它应首先为淡入文本设置动画,而onComplete它应该触发它所做的Vivus.js构造函数。但是,SVG元素在动画发生之前是可见的,这不是期望的效果。我试图以某种方式操纵它,但问题仍然存在 - 我可能会错过什么......?

期望的效果是在画画时淡入。

这是笔:https://codepen.io/anon/pen/ELGawo

function initialAnimation() {
  var introText = $(".text-intro"),
    tlIntro = new TimelineLite({ onComplete: introFadeIn });
    tlIntro.from(introText, 1, { autoAlpha: 0 });
}

// Fade in and draw elements
function introFadeIn() {
  var graphic1 = $(".graphic1");

  tlIntrofadeIn = new TimelineLite({ onComplete: gr1Animate });
  tlIntrofadeIn
    .from(graphic1Elem, 1, { autoAlpha: 0 });
}

function gr1Animate() {
  new Vivus(
    "gr1",
    {
      type: "delayed",
      onReady: function(myVivus) {
        myVivus.el.style.visibility = "inherit";
      }
    },
    function(obj) {
      obj.el.style.visibility = "visible";
    }
  );
}

initialAnimation();

1 个答案:

答案 0 :(得分:1)

我不熟悉Vivus,但是GSAP有一个工具(DrawSVGPlugin)可以做同样的事情(以及更多)作为Club GreenSock的好处而且它可以无缝集成,所以你的30行代码可以被压缩到3: https://codepen.io/GreenSock/pen/de8f2fa2a6813213d0e258113b2b15bd/?editors=0010

var introTL = new TimelineLite({delay:0.5});
introTL.from(".text-intro, #gr1 circle, #gr1 text", 1, {autoAlpha:0})
  .from("#gr1 path", 2, {drawSVG:"0%", autoAlpha:0});

如果您有任何其他问题,我建议您查看https://greensock.com/forums/的GSAP论坛。这是一个梦幻般的社区(不是Stack Overflow不是 - 只是GreenSock论坛完全致力于与GSAP相关的问题)。快乐动画!