Всички компоненти

MotionNumber · MotionText

Число, чиито разряди се въртят като колелца, включително разряди, които се появяват или изчезват.

УебReact NativeЧисла и текст

Опитайте

Подготовка на примера…

Най-кратка употреба

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

С какво се справя вместо вас

  • Пренос: 999 → 1,000 превърта всеки променен разряд в една и съща посока, като километраж.
  • Разряди, които се появяват или изчезват, се превъртат в или извън собствената си колона, вместо да изскачат.
  • Разделители, знаци и символи на валути се появяват и изчезват заедно с разряда, към който принадлежат.
  • Оставащите разряди се плъзгат към новите си позиции, докато се превъртат, така че числото никога не се разпада.
  • Нова стойност по средата на движение продължава точно от това, което е на екрана.
  • Форматирането никога не изисква Intl: подайте текст или функция format, или включете intl.

Подходящ за

  • Сума на количката, която се променя с добавянето на артикули.
  • Брояч или резултат на живо.
  • Показател на табло, който се опреснява на няколко секунди.

Props

MotionNumber

PropТипПо подразбиранеОписание
valuenumber | bigint | string—задължителноЧислото или числов текст, форматиран от вас.
mode'replace' | 'roll''replace'replace мести всеки променен разряд с една стъпка; roll минава през цифрите между тях.
direction'auto' | 'digit' | 'up' | 'down''auto'auto следва промяната на големината, така че преносите се превъртат в една посока; digit сравнява всеки разряд поотделно.
staggernumber45Милисекунди между променените разряди, от единиците навън. Цялата вълна е ограничена във времето.
format(value) => string | Intl.NumberFormatOptionsФункция, която връща текста за показване, или опции на Intl.NumberFormat (с intl).
intlbooleanfalseИзползвай вградения Intl.NumberFormat. Изключено по подразбиране, за да не се нуждае никоя среда от Intl.
localestring | string[]Локал за intl.
prefixstringТекст преди числото.
suffixstringТекст след числото.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
onMotionComplete(value) => voidИзпълнява се със стойността, след като разрядите спрат.

MotionText

PropТипПо подразбиранеОписание
childrenReactNodeТекстът за показване.
aselement'span'Елементът за рендериране.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
onMotionComplete(text) => voidИзпълнява се, когато движението спре.

Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.

Уеб и React Native

В уеб всеки разряд е малък стълб от глифове, възпроизвеждан от Web Animations API, а текстът остава маркируем. MotionText анимира всякакъв текст: числовият се превърта по разряди, а другият се сменя.

В React Native числото остава истински Text за оформление, маркиране и достъпност, включително пренасяне и numberOfLines; глифовете се движат на нативния драйвер.

Използван в тези примери

Търсене

Пишете, за да търсите в документацията.