我有几个gsap时间表,开始于不同的时间。动态更改gsap时间轴位置参数
在我的设置中,使用位置参数作为排序的时间轴是必要的。 delay()
是不幸的是不可能的。
这里是一些示例代码:
sampleTimeline= new TimelineMax({paused: true,onComplete:restartSampleTimeline},0)
.to("#sampleblock",2,{x:"200px"},2) /* <-- this parameter needs to be dynamic */
.to("#sampleblock",2,{x:"0px"},4);
var count = 0;
function restartSampleTimeline(){
$("#sampleblock").html(count);
count++;
if(count>=1){
// at this position, i want to skip the two seconds/change the number "2"!
sampleTimeline.restart();
}else{
sampleTimeline.restart();
}
}
sampleTimeline.play();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.0/TweenMax.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.0/TimelineMax.min.js"></script>
<div id="sampleblock">haha</div>
我想达到的目标是(你可以在我的JavaScript部分评论见)改变了第一的位置参数to()
特定条件后(此例中为var count >=1
)
有没有办法做到这一点?我没能“只使用一个变量作为位置参数”,因为它只记得给定的变量的第一状态...提前:)
其使用GreenSock的版本,你有类似的问题使用?他们的1.19.0的例子显示参数值可以即时计算,不是吗? https://greensock.com/1-19-0/ – vector
是的,我使用1.19.0 ..就我所知/我的经验而言,“即时计算”意味着,您可以使用变量作为参数,但是在设置时间轴之后,它将获取变量的初始值,并确实不刷新它...我错了吗? – FalcoB
...你可以从你的片段做出一个codepen吗?你的意图是保持动画循环的方式?我很想好好玩一下,主要是看看一个函数作为参数会做什么。 – vector