Vodniki · 02

Timing, vzmeti in kompozicija

Izberite driver, združite jih več in natančno vedite, kaj se zgodi, ko se eden ustavi ali zamenja.

timing, spring in decay

timing sledi krivulji v fiksnem duration. spring sledi fiziki in nima fiksnega trajanja. decay začne s hitrostjo in upočasnjuje.

Isti driverji sprejmejo število, ValueXY ali zapis, zato se lahko { x, y, opacity } premikajo skupaj.

Pripravljanje primera …

Parametri vzmeti

Uporabite eno parametrizacijo. Brez nje dobite privzeto vzmet React Nativa (tension 40, friction 7). velocity vzmeti je privzeto hitrost poti, ki jo prekine.

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

Kompozicija

sequence izvaja eno za drugim, parallel skupaj, stagger zažene vsakega po zamiku, delay čaka, loop pa ponavlja. Rezultat je spet krmilnik, zato je kompozicije mogoče gnezditi.

Pripravljanje primera …

start, stop in reset

Vsak krmilnik ima start(callback?), stop() in reset(). Callback prejme { finished }: false, ko je bilo gibanje ustavljeno ali zamenjano.

Zagon novega driverja na isti vrednosti zamenja tistega, ki teče, od trenutnega položaja. Ni skoka na noben konec.

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

Sledenje drugi vrednosti

Živ toValue znova zažene driver vsakič, ko se ta vrednost spremeni, kot tracking v React Nativu. follow(target, source) je ista povezava z vzmetjo kot poimenovana funkcija.

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 in ključne sličice

Easing se ujema z React Nativom: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier in pomočniki in, out, inOut. keyframes(value, frames, options) vodi eno vrednost skozi več števil z neobveznima times in repeat.

Iskanje

Tipkajte za iskanje po dokumentaciji.