MotionNumber · MotionText
Číslo, jehož řády se točí jako kolečka, včetně řádů, které se objevují nebo mizí.
WebReact NativeČísla a text
Vyzkoušejte
Příprava příkladu…
Nejkratší použití
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>Co za vás vyřeší
- Přenosy:
999 → 1,000protočí každý změněný řád stejným směrem, jako tachometr. - Řády, které se objevují nebo mizí, vrolují či vyrolují ve vlastním sloupci, místo aby vyskočily.
- Oddělovače, znaménka a symboly měn se objevují a mizí s řádem, ke kterému patří.
- Zbývající řády při rolování klouzají na nová místa, takže se číslo nikdy nerozpadne.
- Nová hodnota uprostřed pohybu pokračuje přesně od toho, co je na obrazovce.
- Formátování nikdy nevyžaduje
Intl: předejte text nebo funkciformat, případně zapněteintl.
Použijte pro
- Součet košíku, který se mění s přidáváním položek.
- Živé počítadlo nebo skóre.
- Údaj na dashboardu, který se obnovuje každých pár sekund.
Props
MotionNumber
| Prop | Typ | Výchozí | Popis |
|---|---|---|---|
value | number | bigint | string | —povinné | Číslo nebo číselný text, který jste naformátovali. |
mode | 'replace' | 'roll' | 'replace' | replace posune každý změněný řád o jeden krok; roll projde číslicemi mezi. |
direction | 'auto' | 'digit' | 'up' | 'down' | 'auto' | auto sleduje změnu velikosti, takže přenosy rolují jedním směrem; digit porovnává každý řád zvlášť. |
stagger | number | 45 | Milisekundy mezi změněnými řády, od jednotek ven. Celá vlna je časově omezená. |
format | (value) => string | Intl.NumberFormatOptions | Funkce vracející text k zobrazení, nebo volby Intl.NumberFormat (s intl). | |
intl | boolean | false | Použít vestavěný Intl.NumberFormat. Ve výchozím stavu vypnuto, aby žádné běhové prostředí Intl nepotřebovalo. |
locale | string | string[] | Locale pro intl. | |
prefix | string | Text před číslem. | |
suffix | string | Text za číslem. | |
transition | Transition | spring | Křivka timing { duration, easing } nebo pružina { tempo: 'spring', spring }. Pružiny si při přerušení zachovávají hybnost. |
onMotionComplete | (value) => void | Spustí se s hodnotou, když řády dosednou. |
MotionText
| Prop | Typ | Výchozí | Popis |
|---|---|---|---|
children | ReactNode | Text k zobrazení. | |
as | element | 'span' | Prvek, který se renderuje. |
transition | Transition | spring | Křivka timing { duration, easing } nebo pružina { tempo: 'spring', spring }. Pružiny si při přerušení zachovávají hybnost. |
onMotionComplete | (text) => void | Spustí se, když pohyb dosedne. |
Ostatní props jdou do renderovaného prvku, takže className, style a obsluhy událostí fungují jako obvykle.
Web a React Native
Na webu je každý řád malým sloupcem glyfů přehrávaným přes Web Animations API a text zůstává označitelný. MotionText animuje jakýkoli text: číselný text roluje po řádech, ostatní se vymění.
V React Native zůstává číslo skutečným Text pro rozvržení, označování i přístupnost, včetně zalamování a numberOfLines; glyfy se pohybují na nativním driveru.
Použito v těchto příkladech
- Souhrn pokladnyMnožství, součty řádků i celkový součet rolují se změnami košíku; upozornění na kupón přichází a odchází; placení vyžaduje záměrné podržení.
MotionListMotionNumberMotionPresenceMotionHold - Doručená poštaKarty filtrů s živými počty, řádky, které lze odsunout přejetím, a seznam, který zacelí mezeru.
MotionHighlightMotionListMotionSwipeMotionNumber