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.

transitions.js
// 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ää.

tokens.js
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; // 140

Easing-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].

Haku

Kirjoita hakeaksesi dokumentaatiosta.