Όλα τα components

MotionNumber · MotionText

Ένας αριθμός του οποίου τα ψηφία κυλούν σαν τροχοί, μαζί με ψηφία που εμφανίζονται ή εξαφανίζονται.

WebReact 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. Απενεργοποιημένο από προεπιλογή ώστε κανένα runtime να μη χρειάζεται 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 και οι χειριστές συμβάντων λειτουργούν κανονικά.

Web και React Native

Στο web, κάθε ψηφίο είναι μια μικρή στοίβα γλυφών που παίζεται από το Web Animations API, και το κείμενο παραμένει επιλέξιμο. Το MotionText κινεί οποιοδήποτε κείμενο: το αριθμητικό κείμενο κυλά ανά ψηφίο, το υπόλοιπο εναλλάσσεται.

Στο React Native ο αριθμός μένει πραγματικό Text για διάταξη, επιλογή και προσβασιμότητα, μαζί με αναδίπλωση και numberOfLines· οι γλυφές κινούνται με τον native driver.

Χρησιμοποιείται σε αυτά τα παραδείγματα

Αναζήτηση

Πληκτρολογήστε για αναζήτηση στην τεκμηρίωση.