Oppaat · 01
Siirtymät
Jokainen komponentti ottaa yhden transition-arvon: timing-käyrän tai jousen. Miten valita ja mitä tapahtuu, kun liike keskeytetään.
Kaksi siirtymätyyppiä
Siirtymä on joko { duration, easing } tai { tempo: 'spring', spring }. Anna se minkä tahansa komponentin transition-propsille. Useita asioita yhtä aikaa liikuttavat komponentit ottavat toisen propsin, kuten MotionList-komponentin layoutTransition-arvon uusiin sijainteihin liukuville kohteille.
// Timing: a duration and a curve.
{ duration: 300, easing: 'easeOut' }
{ duration: 600, easing: [0.22, 1, 0.36, 1] }
// Spring: physics that keeps its speed when interrupted.
{ tempo: 'spring', spring: { stiffness: 260, damping: 12 } }
// Spring with duration: calibrated to settle exactly then.
{ tempo: 'spring', spring: { stiffness: 260, damping: 12 }, duration: 500 }Kestolliset jouset
Jousi kestää tavallisesti niin kauan kuin sen fysiikka vaatii. Lisää duration, niin jousi kalibroidaan asettumaan juuri silloin säilyttäen luonteensa (kuinka paljon se pomppii) ja sopien ajoitukseesi. Vertaa timing-käyriä ja jousia samoilla kolmella komponentilla alla.
Valmistellaan esimerkkiä…
Keskeytykset
Jokainen komponentti aloittaa uuden liikkeen siitä, mitä näytöllä on. Jousi säilyttää myös nykyisen nopeutensa, joten toinen napsautus kääntää liikkeen sujuvasti. Timing-käyrä alkaa uudelleen nykyisestä sijainnista uudella käyrällä.
- Numerot: uusi arvo jatkaa näytöllä olevista merkeistä.
- Korkeus ja vaihdot: koko jatkaa näytöllä olevasta koosta.
- Listat: uuteen sijaintiin siirtyvät kohteet säilyttävät nopeutensa.
Valmiit siirtymät
motionTokens kokoaa muutaman yhtenäisen tuntuman: neljä jousta, neljä timing-käyrää ja neljä kestoa. Ne ovat tavallisia objekteja, joten levitä yksi muuttaaksesi yksittäistä kenttää.
import { motionTokens } from '@kkwaenggwari/animated-chorus';
motionTokens.spring.quick; // snappy UI feedback
motionTokens.spring.basic; // the default feel
motionTokens.spring.gentle; // panels and height
motionTokens.spring.bouncy; // playful numbers
motionTokens.easing.expoOut; // { duration: 420, easing: 'expoOut' }
motionTokens.duration.fast; // 140Easing-nimet
easing hyväksyy arvot linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut tai kuutiollisen Bézier-taulukon, kuten [0.22, 1, 0.36, 1].