Ghiduri · 02

Timing, arcuri și compoziție

Alegeți un driver, combinați mai multe și știți exact ce se întâmplă când unul se oprește sau e înlocuit.

timing, spring și decay

timing urmează o curbă pe un duration fix. spring urmează fizica și nu are durată fixă. decay pornește cu o viteză și încetinește.

Aceleași drivere acceptă un număr, un ValueXY sau o înregistrare, așa că { x, y, opacity } se pot mișca împreună.

Se pregătește exemplul…

Parametrii arcului

Folosiți un singur set de parametri. Fără el primiți arcul implicit din React Native (tension 40, friction 7). velocity al unui arc este implicit viteza mișcării pe care o întrerupe.

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

Compoziție

sequence rulează unul după altul, parallel împreună, stagger pornește fiecare după o întârziere, delay așteaptă, iar loop repetă. Rezultatul este tot un controler, așa că compozițiile se pot imbrica.

Se pregătește exemplul…

start, stop și reset

Fiecare controler are start(callback?), stop() și reset(). Callback-ul primește { finished }: false când mișcarea a fost oprită sau înlocuită.

Pornirea unui driver nou pe aceeași valoare îl înlocuiește pe cel în curs de la poziția curentă. Nu există salt la vreun capăt.

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

Urmărirea altei valori

Un toValue viu repornește driverul de fiecare dată când acea valoare se schimbă, ca tracking-ul din React Native. follow(target, source) este aceeași legătură cu arc, sub forma unei funcții cu nume.

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 și keyframe-uri

Easing corespunde celui din React Native: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier și ajutoarele in, out, inOut. keyframes(value, frames, options) trece o valoare prin mai multe numere, cu times și repeat opționale.

Căutare

Tastați pentru a căuta în documentație.