Vodniki · 01
Prehodi
Vsaka komponenta sprejme en transition: krivuljo timinga ali vzmet. Kako izbrati in kaj se zgodi, ko se gibanje prekine.
Dve vrsti prehoda
Prehod je bodisi { duration, easing } bodisi { tempo: 'spring', spring }. Podajte ga propu transition katere koli komponente. Komponente, ki hkrati premikajo več stvari, sprejmejo še drug prop, na primer layoutTransition pri MotionList za elemente, ki drsijo na nove položaje.
// 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 }Vzmeti s trajanjem
Vzmet običajno teče toliko časa, kolikor potrebuje njena fizika. Dodajte duration in vzmet je umerjena tako, da se umiri natanko takrat, pri čemer ohrani svoj značaj (koliko odskakuje) in se prilagodi vašemu timingu. Primerjajte krivulje timinga in vzmeti na istih treh komponentah spodaj.
Pripravljanje primera …
Prekinitve
Vsaka komponenta začne novo gibanje od tistega, kar je na zaslonu. Vzmet ohrani tudi trenutno hitrost, zato drugi klik gibanje gladko obrne. Krivulja timinga se začne znova od trenutnega položaja s svežo krivuljo.
- Števila: nova vrednost nadaljuje od znakov na zaslonu.
- Višina in zamenjave: velikost nadaljuje od velikosti na zaslonu.
- Seznami: elementi, ki se premikajo na nov položaj, ohranijo hitrost.
Pripravljeni prehodi
motionTokens zbira nekaj usklajenih občutkov: štiri vzmeti, štiri krivulje timinga in štiri trajanja. To so navadni objekti, zato enega razširite, da spremenite eno samo polje.
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; // 140Imena easinga
easing sprejme linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut ali polje kubične Bézierjeve krivulje, kot je [0.22, 1, 0.36, 1].