我试图让时间轴成为绿色摇滚中多个时间轴的一部分。我想我需要发生的是一个元素需要在两种情况下都有动画,但只有on或者其他需要在每种情况下都需要动画。
到目前为止我所拥有的是什么
var tl1 = new TimelineMax()
tl1.to(document.getElementById("one"), 0.5, { x: 10 })
var tl2 = new TimelineMax({ paused: true })
tl2.add(tl1)
tl2.to(document.getElementById("two"), 0.5, { x: 10 })
var tl3 = new TimelineMax({ paused: true })
tl3.add(tl1)
tl3.to(document.getElementById("three"), 0.5, { x: 10 })
tl2.play()

#one, #two, #three {
width: 10px;
height: 10px;
}
#one {
background-color: hsl(0,70%,50%);
}
#two {
background-color: hsl(100,70%,50%);
}
#three {
background-color: hsl(200,70%,50%);
}

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.5/TweenMax.min.js"></script>
<div id="one"></div>
<div id="two"></div>
<div id="three"></div>
&#13;
也许有更好的方法来实现这一目标......
提前致谢
答案 0 :(得分:0)
有很多方法可以实现这一目标,但我首先要指出一些事情:
如果您的目标是在两个时间轴中将#one动画从x:0设置为x:10,则不必创建嵌套时间轴并尝试重复使用。相反,您可以将一个简单的fromTo()补间放入两者中。像:
tl2.fromTo("#one", 0.5, {x:0}, {x:10})
.fromTo("#two", 0.5, {x:0}, {x:10});
tl3.fromTo("#one", 0.5, {x:0}, {x:10})
.fromTo("#three", 0.5, {x:0}, {x:10});
如果你确实想要使用时间轴和嵌套,你仍然可以用一种棘手的方式 - 你可以在最初暂停时创建tl1(你想要重用的那个),然后使用tweenFromTo()方法来从两个时间轴基本上都是动画播放头。 tweenFromTo()只是回吐一个控制播放头的补间,因此你可以将补间嵌套在另一个时间轴内(并创建多个补间,它们正在做同样的事情)。像:
tl2.add(tl1.tweenFromTo(0, tl1.duration()));
tl3.add(tl1.tweenFromTo(0, tl1.duration()));
这有帮助吗?