Alla komponenter

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

Total.jsx
<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,000 rullar 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 en format-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

PropTypStandardBeskrivning
valuenumber | bigint | string—krävsTalet, 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.
staggernumber45Millisekunder mellan ändrade positioner, från entalen och utåt. Hela vågen är begränsad.
format(value) => string | Intl.NumberFormatOptionsEn funktion som returnerar texten som ska visas, eller Intl.NumberFormat-alternativ (med intl).
intlbooleanfalseAnvänd det inbyggda Intl.NumberFormat. Avstängt som standard så att ingen körmiljö behöver Intl.
localestring | string[]Locale för intl.
prefixstringText före talet.
suffixstringText efter talet.
transitionTransitionspringEn timingkurva { duration, easing } eller en fjäder { tempo: 'spring', spring }. Fjädrar behåller sitt momentum när de avbryts.
onMotionComplete(value) => voidKörs med värdet när positionerna har landat.

MotionText

PropTypStandardBeskrivning
childrenReactNodeTexten som ska visas.
aselement'span'Elementet som renderas.
transitionTransitionspringEn timingkurva { duration, easing } eller en fjäder { tempo: 'spring', spring }. Fjädrar behåller sitt momentum när de avbryts.
onMotionComplete(text) => voidKö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

Sök

Skriv för att söka i dokumentationen.