Toate componentele

MotionNumber · MotionText

Un număr ale cărui cifre se rotesc ca niște roți, inclusiv cifrele care apar sau dispar.

WebReact NativeNumere și text

Încercați

Se pregătește exemplul…

Cea mai scurtă utilizare

Total.jsx
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
  format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>

Ce rezolvă în locul dumneavoastră

  • Transporturi: 999 → 1,000 rotește fiecare cifră schimbată în același sens, ca un odometru.
  • Cifrele care apar sau dispar intră sau ies rotindu-se din propria coloană, în loc să apară brusc.
  • Separatoarele, semnele și simbolurile monetare apar și se estompează odată cu cifra căreia îi aparțin.
  • Cifrele rămase alunecă spre noile poziții în timp ce se rotesc, așa că numărul nu se desparte niciodată.
  • O valoare nouă în mijlocul unei mișcări continuă exact de la ce e pe ecran.
  • Formatarea nu cere niciodată Intl: transmiteți text sau o funcție format, ori activați-o cu intl.

Folosiți-o pentru

  • Totalul unui coș care se schimbă pe măsură ce se adaugă produse.
  • Un contor sau un scor live.
  • O cifră de tablou de bord care se reîmprospătează la câteva secunde.

Props

MotionNumber

PropTipImplicitDescriere
valuenumber | bigint | string—obligatoriuNumărul sau un text numeric formatat de apelant.
mode'replace' | 'roll''replace'replace mută fiecare cifră schimbată cu un pas; roll trece prin cifrele intermediare.
direction'auto' | 'digit' | 'up' | 'down''auto'auto urmează schimbarea de mărime, ca transporturile să se rotească într-un singur sens; digit compară fiecare cifră separat.
staggernumber45Milisecunde între cifrele schimbate, de la unități spre exterior. Întreaga undă este limitată.
format(value) => string | Intl.NumberFormatOptionsO funcție care returnează textul de afișat sau opțiuni Intl.NumberFormat (cu intl).
intlbooleanfalseFolosește Intl.NumberFormat integrat. Dezactivat implicit, ca niciun mediu de rulare să nu aibă nevoie de Intl.
localestring | string[]Localizarea pentru intl.
prefixstringText înaintea numărului.
suffixstringText după număr.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
onMotionComplete(value) => voidRulează cu valoarea după ce cifrele s-au așezat.

MotionText

PropTipImplicitDescriere
childrenReactNodeTextul de afișat.
aselement'span'Elementul de randat.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
onMotionComplete(text) => voidRulează când mișcarea se așază.

Celelalte props merg la elementul randat, așa că className, style și handlerele de evenimente funcționează ca de obicei.

Web și React Native

Pe web, fiecare cifră este un mic teanc de glife redat de Web Animations API, iar textul rămâne selectabil. MotionText animă orice text: textul numeric se rotește pe cifre, celălalt text se schimbă.

În React Native, numărul rămâne un Text real pentru layout, selecție și accesibilitate, inclusiv încadrarea pe rânduri și numberOfLines; glifele se mișcă pe driverul nativ.

Folosită în aceste exemple

Căutare

Tastați pentru a căuta în documentație.