ガイド · 06
タイムライン
シークできるひとつのクロックで多くのトラックを動かします。再生、一時停止、シーク、逆再生、速度の変更。
ひとつのクロックに並ぶトラック
useTimeline(tracks, options, deps) はコンポーネントが所有するタイムラインを作ります。各トラックはキーフレームのリストか、{ values, times, at, duration }(at と duration はミリ秒)です。
progress はひとつの CSS 変数で、数値や長さのトラックはそれを使った calc() 式です。そのため普通の style で使うタイムラインは、1 フレームに変数を 1 つ書くだけです。
再生の制御
play({ from, rate })、pause()、seek(ms)、reverse() でクロックを操作します。state、currentTime、duration、finished の Promise で状態がわかります。repeat と repeatDelay でループします。
Title.jsxconst intro = useTimeline(
{
y: ['24px', '0px'],
fade: { values: [0, 1], at: 0, duration: 300 },
line: { values: [0, 1], at: 200, duration: 600 },
},
{ duration: 800 },
);
intro.seek(400);
intro.play({ rate: 0.5 });
intro.reverse();
React の外で
createTimeline は、コンポーネントなしで使える同じクロックです。使い終わったら dispose() を呼んでください。