Sprievodcovia · 01
Prechody
Každý komponent prijíma jeden transition: krivku timing alebo pružinu. Ako vyberať a čo sa stane, keď sa pohyb preruší.
Dva druhy prechodov
Prechod je buď { duration, easing }, alebo { tempo: 'spring', spring }. Odovzdajte ho do prop transition ľubovoľného komponentu. Komponenty, ktoré hýbu viacerými vecami naraz, prijímajú druhú prop, napríklad layoutTransition pri MotionList pre položky kĺžuce na nové miesta.
// 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 }Pružiny s dĺžkou
Pružina zvyčajne beží tak dlho, ako vyžaduje jej fyzika. Pridajte duration a pružina sa nakalibruje tak, aby dosadla presne vtedy, so zachovaním charakteru (ako veľmi pruží) a v súlade s vaším timingom. Nižšie porovnajte krivky timing a pružiny na rovnakých troch komponentoch.
Príprava príkladu…
Prerušenia
Každý komponent začína nový pohyb od toho, čo je na obrazovke. Pružina si navyše zachová aktuálnu rýchlosť, takže druhé kliknutie pohyb plynulo obráti. Krivka timing začne znova z aktuálnej polohy s novou krivkou.
- Čísla: nová hodnota pokračuje od glyfov na obrazovke.
- Výška a výmeny: veľkosť pokračuje od veľkosti na obrazovke.
- Zoznamy: položky presúvajúce sa na nové miesto si zachovajú rýchlosť.
Hotové prechody
motionTokens zhromažďuje niekoľko jednotných pocitov: štyri pružiny, štyri krivky timing a štyri dĺžky. Sú to obyčajné objekty, takže jeden rozbaľte a zmeňte jediné pole.
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; // 140Názvy easing
easing prijíma linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut alebo pole kubickej Bézierovej krivky ako [0.22, 1, 0.36, 1].