MotionNumber · MotionText
Et tal, hvis pladser ruller som hjul, også pladser, der dukker op eller forsvinder.
WebReact NativeTal og tekst
Prøv det
Forbereder eksemplet…
Korteste brug
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>Det klarer den for dig
- Mente:
999 → 1,000ruller hver ændret plads i samme retning, som en kilometertæller. - Pladser, der dukker op eller forsvinder, ruller ind i eller ud af deres egen kolonne i stedet for at poppe.
- Separatorer, fortegn og valutasymboler toner ind og ud med den plads, de hører til.
- De resterende pladser glider til deres nye positioner, mens de ruller, så tallet aldrig splitter.
- En ny værdi midt i en bevægelse fortsætter præcis fra det, der er på skærmen.
- Formatering kræver aldrig
Intl: giv tekst eller enformat-funktion, eller slåintltil.
Brug den til
- En kurvtotal, der ændrer sig, når varer tilføjes.
- En live-tæller eller -score.
- Et tal på et dashboard, der opdateres med få sekunders mellemrum.
Props
MotionNumber
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
value | number | bigint | string | —påkrævet | Tallet eller numerisk tekst, som du har formateret. |
mode | 'replace' | 'roll' | 'replace' | replace flytter hver ændret plads ét trin; roll passerer cifrene imellem. |
direction | 'auto' | 'digit' | 'up' | 'down' | 'auto' | auto følger størrelsesændringen, så mente ruller i én retning; digit sammenligner hver plads for sig. |
stagger | number | 45 | Millisekunder mellem ændrede pladser, fra enerne og udad. Hele bølgen er begrænset. |
format | (value) => string | Intl.NumberFormatOptions | En funktion, der returnerer teksten, der skal vises, eller Intl.NumberFormat-indstillinger (med intl). | |
intl | boolean | false | Brug den indbyggede Intl.NumberFormat. Slået fra som standard, så intet runtime kræver Intl. |
locale | string | string[] | Locale til intl. | |
prefix | string | Tekst før tallet. | |
suffix | string | Tekst efter tallet. | |
transition | Transition | spring | En timingkurve { duration, easing } eller en fjeder { tempo: 'spring', spring }. Fjedre bevarer deres momentum, når de afbrydes. |
onMotionComplete | (value) => void | Kører med værdien, når pladserne er landet. |
MotionText
| Prop | Type | Standard | Beskrivelse |
|---|---|---|---|
children | ReactNode | Teksten, der skal vises. | |
as | element | 'span' | Elementet, der renderes. |
transition | Transition | spring | En timingkurve { duration, easing } eller en fjeder { tempo: 'spring', spring }. Fjedre bevarer deres momentum, når de afbrydes. |
onMotionComplete | (text) => void | Kører, når bevægelsen lander. |
Andre props går til det renderede element, så className, style og event handlers virker som normalt.
Web og React Native
På nettet er hver plads en lille stak glyffer, der afspilles af Web Animations API, og teksten kan stadig markeres. MotionText animerer enhver tekst: numerisk tekst ruller pr. plads, anden tekst skiftes.
I React Native forbliver tallet en rigtig Text til layout, markering og tilgængelighed, inklusive ombrydning og numberOfLines; glyfferne bevæger sig på native driver.
Brugt i disse eksempler
- KasseoversigtAntal, linjetotaler og totalen ruller, når kurven ændrer sig; rabatbeskeden kommer og går; at betale kræver et bevidst tryk og hold.
MotionListMotionNumberMotionPresenceMotionHold - IndbakkeFilterfaner med live-tal, rækker, der kan swipes væk, og en liste, der lukker hullet.
MotionHighlightMotionListMotionSwipeMotionNumber