Wszystkie komponenty

MotionNumber · MotionText

Liczba, której cyfry obracają się jak kółka, łącznie z cyframi, które się pojawiają lub znikają.

SiećReact NativeLiczby i tekst

Wypróbuj

Przygotowywanie przykładu…

Najkrótsze użycie

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

Co robi za ciebie

  • Przeniesienia: 999 → 1,000 przewija każdą zmienioną cyfrę w tę samą stronę, jak licznik kilometrów.
  • Cyfry, które się pojawiają lub znikają, wjeżdżają lub wyjeżdżają we własnej kolumnie zamiast wyskakiwać.
  • Separatory, znaki i symbole walut pojawiają się i znikają razem z cyfrą, do której należą.
  • Pozostałe cyfry przesuwają się na nowe pozycje w trakcie przewijania, więc liczba nigdy się nie rozpada.
  • Nowa wartość w środku ruchu kontynuuje dokładnie od tego, co na ekranie.
  • Formatowanie nigdy nie wymaga Intl: przekaż tekst lub funkcję format albo włącz intl.

Do czego służy

  • Suma koszyka zmieniająca się przy dodawaniu produktów.
  • Licznik lub wynik na żywo.
  • Wskaźnik na panelu odświeżany co kilka sekund.

Props

MotionNumber

PropTypDomyślnieOpis
valuenumber | bigint | string—wymaganeLiczba lub sformatowany przez ciebie tekst liczbowy.
mode'replace' | 'roll''replace'replace przesuwa każdą zmienioną cyfrę o jeden krok; roll przechodzi przez cyfry pośrednie.
direction'auto' | 'digit' | 'up' | 'down''auto'auto podąża za zmianą wielkości, więc przeniesienia przewijają się w jedną stronę; digit porównuje każdą cyfrę osobno.
staggernumber45Milisekundy między zmienionymi cyframi, od jedności na zewnątrz. Cała fala jest ograniczona w czasie.
format(value) => string | Intl.NumberFormatOptionsFunkcja zwracająca tekst do pokazania lub opcje Intl.NumberFormat (z intl).
intlbooleanfalseUżyj wbudowanego Intl.NumberFormat. Domyślnie wyłączone, więc żadne środowisko nie potrzebuje Intl.
localestring | string[]Locale dla intl.
prefixstringTekst przed liczbą.
suffixstringTekst po liczbie.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
onMotionComplete(value) => voidUruchamia się z wartością, gdy cyfry się ułożą.

MotionText

PropTypDomyślnieOpis
childrenReactNodeTekst do pokazania.
aselement'span'Element do wyrenderowania.
transitionTransitionspringKrzywa timing { duration, easing } lub sprężyna { tempo: 'spring', spring }. Sprężyny zachowują pęd po przerwaniu.
onMotionComplete(text) => voidUruchamia się, gdy ruch się ułoży.

Pozostałe props trafiają do renderowanego elementu, więc className, style i obsługa zdarzeń działają jak zwykle.

Sieć i React Native

W sieci każda cyfra to mały stos glifów odtwarzany przez Web Animations API, a tekst pozostaje do zaznaczenia. MotionText animuje dowolny tekst: tekst liczbowy przewija się cyfra po cyfrze, inny się zamienia.

W React Native liczba pozostaje prawdziwym Text dla układu, zaznaczania i dostępności, łącznie z zawijaniem i numberOfLines; glify poruszają się na sterowniku natywnym.

Użyty w tych przykładach

Szukaj

Zacznij pisać, aby przeszukać dokumentację.