ガイド · 02

タイミング、スプリング、組み合わせ

ドライバーを選び、組み合わせ、止めたり置き換えたりしたときに何が起きるかを正確に把握します。

timing、spring、decay

timing は決まった duration の間カーブに沿って動きます。spring は物理法則に従い、決まった長さがありません。decay は速度を持って始まり、減速していきます。

同じドライバーが数値、ValueXY、レコードを受け付けるので、{ x, y, opacity } を一緒に動かせます。

サンプルを準備中…

スプリングのパラメーター

パラメーターの指定方法はひとつだけ使います。何も指定しなければ React Native のデフォルトのスプリング(tension 40、friction 7)になります。スプリングの velocity のデフォルトは、中断した軌跡の速度です。

springs.js
spring(value, { toValue: 1 }); // React Native default
spring(value, { toValue: 1, stiffness: 260, damping: 20 }); // physical
spring(value, { toValue: 1, bounciness: 8, speed: 12 }); // React Native style
spring(value, { toValue: 1, tension: 40, friction: 7 }); // origami style

組み合わせる

sequence は順番に、parallel は同時に実行し、stagger は遅延をつけて順に開始し、delay は待ち、loop は繰り返します。結果もまたコントローラーなので、組み合わせを入れ子にできます。

サンプルを準備中…

start、stop、reset

すべてのコントローラーに start(callback?)、stop()、reset() があります。コールバックは { finished } を受け取り、モーションが止められたか置き換えられた場合は false です。

同じ値で新しいドライバーを開始すると、実行中のものを現在の位置から置き換えます。どちらかの端へ飛ぶことはありません。

controller.js
const move = timing(value, { toValue: 1, duration: 600 });

move.start(({ finished }) => {
  // finished is false when stopped or replaced by a new animation
});
move.stop(); // keeps the value where it is on screen
move.reset(); // returns to where this animation started

別の値を追いかける

toValue に動く値を渡すと、その値が変わるたびにドライバーが再開します。React Native のトラッキングと同じです。follow(target, source) は、同じスプリングのつながりを名前付きの関数にしたものです。

tracking.js
// A live toValue tracks another value, like React Native tracking.
spring(badge, { toValue: pointer, stiffness: 300, damping: 26 }).start();

// follow() is the same connection as a named function.
follow(badge, pointer, { stiffness: 300, damping: 26 });

イージングとキーフレーム

Easing は React Native と同じです: linear、quad、cubic、sin、circle、exp、elastic、back、bounce、bezier と、in、out、inOut のヘルパー。keyframes(value, frames, options) は、省略可能な times と repeat を使って、ひとつの値を複数の数値へ順に動かします。

検索

入力するとドキュメントを検索します。