MotionNumber · MotionText
Ένας αριθμός του οποίου τα ψηφία κυλούν σαν τροχοί, μαζί με ψηφία που εμφανίζονται ή εξαφανίζονται.
WebReact 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. Απενεργοποιημένο από προεπιλογή ώστε κανένα runtime να μη χρειάζεται 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 και οι χειριστές συμβάντων λειτουργούν κανονικά.
Web και React Native
Στο web, κάθε ψηφίο είναι μια μικρή στοίβα γλυφών που παίζεται από το Web Animations API, και το κείμενο παραμένει επιλέξιμο. Το MotionText κινεί οποιοδήποτε κείμενο: το αριθμητικό κείμενο κυλά ανά ψηφίο, το υπόλοιπο εναλλάσσεται.
Στο React Native ο αριθμός μένει πραγματικό Text για διάταξη, επιλογή και προσβασιμότητα, μαζί με αναδίπλωση και numberOfLines· οι γλυφές κινούνται με τον native driver.
Χρησιμοποιείται σε αυτά τα παραδείγματα
- Σύνοψη ολοκλήρωσης αγοράςΟι ποσότητες, τα σύνολα γραμμών και το συνολικό ποσό κυλούν καθώς αλλάζει το καλάθι· η ειδοποίηση κουπονιού μπαίνει και βγαίνει· η πληρωμή απαιτεί σκόπιμο παρατεταμένο πάτημα.
MotionListMotionNumberMotionPresenceMotionHold - ΕισερχόμεναΚαρτέλες φίλτρων με ζωντανούς μετρητές, γραμμές που απομακρύνονται με σάρωση και μια λίστα που κλείνει το κενό.
MotionHighlightMotionListMotionSwipeMotionNumber