Oppaat · 02

Timing, jouset ja koostaminen

Valitse driver, yhdistä useita ja tiedä tarkalleen, mitä tapahtuu, kun yksi pysähtyy tai korvataan.

timing, spring ja decay

timing seuraa käyrää kiinteän duration-ajan. spring noudattaa fysiikkaa eikä sillä ole kiinteää kestoa. decay alkaa nopeudella ja hidastuu.

Samat driverit hyväksyvät luvun, ValueXY-arvon tai tietueen, joten { x, y, opacity } voivat liikkua yhdessä.

Valmistellaan esimerkkiä…

Jousen parametrit

Käytä yhtä parametrointia. Ilman sitä saat React Nativen oletusjousen (tension 40, friction 7). Jousen velocity on oletuksena sen liikkeen nopeus, jonka se keskeyttää.

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

Koostaminen

sequence suorittaa peräkkäin, parallel yhdessä, stagger käynnistää kunkin viiveen jälkeen, delay odottaa ja loop toistaa. Tulos on taas ohjain, joten koosteita voi sisäkkäistää.

Valmistellaan esimerkkiä…

start, stop ja reset

Jokaisella ohjaimella on start(callback?), stop() ja reset(). Callback saa { finished }-arvon: false, kun liike pysäytettiin tai korvattiin.

Uuden driverin käynnistäminen samalle arvolle korvaa käynnissä olevan nykyisestä sijainnista. Kumpaankaan päähän ei hypä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

Toisen arvon seuraaminen

Elävä toValue käynnistää driverin uudelleen aina, kun kyseinen arvo muuttuu, kuten tracking React Nativessa. follow(target, source) on sama jousikytkentä nimettynä funktiona.

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 ja avainruudut

Easing vastaa React Nativea: linear, quad, cubic, sin, circle, exp, elastic, back, bounce, bezier sekä apufunktiot in, out ja inOut. keyframes(value, frames, options) vie yhden arvon useiden lukujen läpi valinnaisilla times- ja repeat-asetuksilla.

Haku

Kirjoita hakeaksesi dokumentaatiosta.