MotionNumber · MotionText
Ett tal vars positioner rullar som hjul, även positioner som dyker upp eller försvinner.
WebbReact NativeSiffror och text
Prova
Förbereder exemplet…
Kortaste användning
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>Det här sköter den åt dig
- Minnessiffror:
999 → 1,000rullar varje ändrad position åt samma håll, som en vägmätare. - Positioner som dyker upp eller försvinner rullar in i eller ut ur sin egen kolumn i stället för att poppa.
- Avgränsare, tecken och valutasymboler tonar in och ut med positionen de hör till.
- Kvarvarande positioner glider till sina nya platser medan de rullar, så talet delar sig aldrig.
- Ett nytt värde mitt i en rörelse fortsätter exakt från det som syns på skärmen.
- Formatering kräver aldrig
Intl: skicka text eller enformat-funktion, eller slå påintl.
Använd den för
- En varukorgssumma som ändras när artiklar läggs till.
- En liveräknare eller poängställning.
- En siffra i en instrumentpanel som uppdateras med några sekunders mellanrum.
Props
MotionNumber
| Prop | Typ | Standard | Beskrivning |
|---|---|---|---|
value | number | bigint | string | —krävs | Talet, eller numerisk text som du formaterat. |
mode | 'replace' | 'roll' | 'replace' | replace flyttar varje ändrad position ett steg; roll passerar siffrorna däremellan. |
direction | 'auto' | 'digit' | 'up' | 'down' | 'auto' | auto följer storleksändringen så att minnessiffror rullar åt ett håll; digit jämför varje position för sig. |
stagger | number | 45 | Millisekunder mellan ändrade positioner, från entalen och utåt. Hela vågen är begränsad. |
format | (value) => string | Intl.NumberFormatOptions | En funktion som returnerar texten som ska visas, eller Intl.NumberFormat-alternativ (med intl). | |
intl | boolean | false | Använd det inbyggda Intl.NumberFormat. Avstängt som standard så att ingen körmiljö behöver Intl. |
locale | string | string[] | Locale för intl. | |
prefix | string | Text före talet. | |
suffix | string | Text efter talet. | |
transition | Transition | spring | En timingkurva { duration, easing } eller en fjäder { tempo: 'spring', spring }. Fjädrar behåller sitt momentum när de avbryts. |
onMotionComplete | (value) => void | Körs med värdet när positionerna har landat. |
MotionText
| Prop | Typ | Standard | Beskrivning |
|---|---|---|---|
children | ReactNode | Texten som ska visas. | |
as | element | 'span' | Elementet som renderas. |
transition | Transition | spring | En timingkurva { duration, easing } eller en fjäder { tempo: 'spring', spring }. Fjädrar behåller sitt momentum när de avbryts. |
onMotionComplete | (text) => void | Körs när rörelsen landar. |
Andra props går till det renderade elementet, så className, style och händelsehanterare fungerar som vanligt.
Webb och React Native
På webben är varje position en liten stapel glyfer som spelas upp av Web Animations API, och texten går att markera. MotionText animerar vilken text som helst: numerisk text rullar per position, annan text byts.
I React Native förblir talet en riktig Text för layout, markering och tillgänglighet, inklusive radbrytning och numberOfLines; glyferna rör sig på native driver.
Används i de här exemplen
- KassasammanfattningAntal, radsummor och totalen rullar när varukorgen ändras; rabattmeddelandet kommer och går; att betala kräver ett avsiktligt nedhållet tryck.
MotionListMotionNumberMotionPresenceMotionHold - InkorgFilterflikar med liveantal, rader som kan svepas bort och en lista som sluter luckan.
MotionHighlightMotionListMotionSwipeMotionNumber