MotionNumber · MotionText
Число, чиито разряди се въртят като колелца, включително разряди, които се появяват или изчезват.
УебReact NativeЧисла и текст
Опитайте
Подготовка на примера…
Най-кратка употреба
<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 | Тип | По подразбиране | Описание |
|---|---|---|---|
value | number | bigint | string | —задължително | Числото или числов текст, форматиран от вас. |
mode | 'replace' | 'roll' | 'replace' | replace мести всеки променен разряд с една стъпка; roll минава през цифрите между тях. |
direction | 'auto' | 'digit' | 'up' | 'down' | 'auto' | auto следва промяната на големината, така че преносите се превъртат в една посока; digit сравнява всеки разряд поотделно. |
stagger | number | 45 | Милисекунди между променените разряди, от единиците навън. Цялата вълна е ограничена във времето. |
format | (value) => string | Intl.NumberFormatOptions | Функция, която връща текста за показване, или опции на Intl.NumberFormat (с intl). | |
intl | boolean | false | Използвай вградения Intl.NumberFormat. Изключено по подразбиране, за да не се нуждае никоя среда от Intl. |
locale | string | string[] | Локал за intl. | |
prefix | string | Текст преди числото. | |
suffix | string | Текст след числото. | |
transition | Transition | spring | Крива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване. |
onMotionComplete | (value) => void | Изпълнява се със стойността, след като разрядите спрат. |
MotionText
| Prop | Тип | По подразбиране | Описание |
|---|---|---|---|
children | ReactNode | Текстът за показване. | |
as | element | 'span' | Елементът за рендериране. |
transition | Transition | spring | Крива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване. |
onMotionComplete | (text) => void | Изпълнява се, когато движението спре. |
Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.
Уеб и React Native
В уеб всеки разряд е малък стълб от глифове, възпроизвеждан от Web Animations API, а текстът остава маркируем. MotionText анимира всякакъв текст: числовият се превърта по разряди, а другият се сменя.
В React Native числото остава истински Text за оформление, маркиране и достъпност, включително пренасяне и numberOfLines; глифовете се движат на нативния драйвер.
Използван в тези примери
- Обобщение на поръчкатаКоличествата, сумите по редове и общата сума се превъртат с промените в количката; съобщението за купона влиза и излиза; плащането изисква съзнателно задържане.
MotionListMotionNumberMotionPresenceMotionHold - Входяща пощаРаздели-филтри с броячи на живо, редове, които могат да се отместят, и списък, който затваря празнината.
MotionHighlightMotionListMotionSwipeMotionNumber