我有幾個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