Průvodci · 01
Přechody
Každá komponenta přijímá jeden transition: křivku timing nebo pružinu. Jak vybírat a co se stane, když se pohyb přeruší.
Dva druhy přechodů
Přechod je buď { duration, easing }, nebo { tempo: 'spring', spring }. Předejte ho do prop transition libovolné komponenty. Komponenty, které hýbou více věcmi najednou, přijímají druhou prop, například layoutTransition u MotionList pro položky klouzající na nová místa.
// 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élkou
Pružina obvykle běží tak dlouho, jak vyžaduje její fyzika. Přidejte duration a pružina se zkalibruje tak, aby dosedla přesně tehdy, se zachováním charakteru (jak moc pruží) a v souladu s vaším timingem. Níže porovnejte křivky timing a pružiny na stejných třech komponentách.
Příprava příkladu…
Přerušení
Každá komponenta začíná nový pohyb od toho, co je na obrazovce. Pružina si navíc zachová aktuální rychlost, takže druhé kliknutí pohyb plynule obrátí. Křivka timing začne znovu z aktuální polohy s novou křivkou.
- Čísla: nová hodnota pokračuje od glyfů na obrazovce.
- Výška a výměny: velikost pokračuje od velikosti na obrazovce.
- Seznamy: položky přesouvající se na nové místo si zachovají rychlost.
Hotové přechody
motionTokens shromažďuje několik jednotných pocitů: čtyři pružiny, čtyři křivky timing a čtyři délky. Jsou to obyčejné objekty, takže jeden rozbalte a změň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 přijímá linear, in, out, inOut, ease, easeIn, easeOut, easeInOut, expoOut, backOut nebo pole kubické Bézierovy křivky jako [0.22, 1, 0.36, 1].