MotionNumber · MotionText
Luku, jonka numeropaikat pyörivät kuin rullat, mukaan lukien ilmestyvät ja katoavat paikat.
WebReact NativeNumerot ja teksti
Kokeile
Valmistellaan esimerkkiä…
Lyhin käyttö
<MotionNumber value={count} />
<MotionNumber value={total} mode="roll" intl locale="en-US"
format={{ style: 'currency', currency: 'USD' }} />
<MotionText>{status}</MotionText>Mitä se hoitaa puolestasi
- Muistinumerot:
999 → 1,000pyörittää jokaista muuttunutta numeropaikkaa samaan suuntaan kuin matkamittari. - Ilmestyvät tai katoavat numeropaikat pyörivät sisään omaan sarakkeeseensa tai sieltä ulos sen sijaan, että ponnahtaisivat.
- Erottimet, etumerkit ja valuuttasymbolit häivytetään esiin ja pois yhdessä numeropaikan kanssa, johon ne kuuluvat.
- Jäljelle jäävät numeropaikat liukuvat uusiin sijainteihinsa pyöriessään, joten luku ei koskaan hajoa.
- Kesken liikkeen tuleva uusi arvo jatkaa tarkalleen siitä, mitä näytöllä on.
- Muotoilu ei koskaan vaadi
Intl-rajapintaa: anna tekstiä taiformat-funktio tai ota se käyttöönintl-asetuksella.
Käytä sitä
- Ostoskorin summa, joka muuttuu tuotteita lisättäessä.
- Live-laskuri tai -pisteet.
- Koontinäytön luku, joka päivittyy muutaman sekunnin välein.
Props
MotionNumber
| Prop | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
value | number | bigint | string | —pakollinen | Luku tai kutsujan muotoilema numeerinen teksti. |
mode | 'replace' | 'roll' | 'replace' | replace siirtää jokaista muuttunutta numeropaikkaa yhden askeleen; roll kulkee välissä olevien numeroiden kautta. |
direction | 'auto' | 'digit' | 'up' | 'down' | 'auto' | auto seuraa suuruuden muutosta, jotta muistinumerot pyörivät yhteen suuntaan; digit vertaa jokaista numeropaikkaa erikseen. |
stagger | number | 45 | Millisekunnit muuttuneiden numeropaikkojen välillä ykkösistä ulospäin. Koko aalto on rajattu. |
format | (value) => string | Intl.NumberFormatOptions | Funktio, joka palauttaa näytettävän tekstin, tai Intl.NumberFormat-asetukset (intl-asetuksen kanssa). | |
intl | boolean | false | Käytä sisäänrakennettua Intl.NumberFormat-rajapintaa. Oletuksena pois päältä, jotta mikään ajoympäristö ei tarvitse Intl-rajapintaa. |
locale | string | string[] | Lokaali intl-asetukselle. | |
prefix | string | Teksti ennen lukua. | |
suffix | string | Teksti luvun jälkeen. | |
transition | Transition | spring | Timing-käyrä { duration, easing } tai jousi { tempo: 'spring', spring }. Jouset säilyttävät liikemääränsä keskeytettäessä. |
onMotionComplete | (value) => void | Suoritetaan arvon kanssa, kun numeropaikat ovat asettuneet. |
MotionText
| Prop | Tyyppi | Oletus | Kuvaus |
|---|---|---|---|
children | ReactNode | Näytettävä teksti. | |
as | element | 'span' | Renderöitävä elementti. |
transition | Transition | spring | Timing-käyrä { duration, easing } tai jousi { tempo: 'spring', spring }. Jouset säilyttävät liikemääränsä keskeytettäessä. |
onMotionComplete | (text) => void | Suoritetaan, kun liike asettuu. |
Muut props-arvot menevät renderöidylle elementille, joten className, style ja tapahtumankäsittelijät toimivat tavalliseen tapaan.
Web ja React Native
Webissä jokainen numeropaikka on pieni merkkipino, jonka Web Animations API toistaa, ja teksti pysyy valittavana. MotionText animoi mitä tahansa tekstiä: numeerinen teksti pyörii numeropaikoittain, muu teksti vaihtuu.
React Nativessa luku pysyy oikeana Text-elementtinä asettelua, valintaa ja saavutettavuutta varten, mukaan lukien rivitys ja numberOfLines; merkit liikkuvat natiivilla driverilla.
Käytetty näissä esimerkeissä
- Kassan yhteenvetoMäärät, rivisummat ja kokonaissumma pyörivät ostoskorin muuttuessa; kuponki-ilmoitus saapuu ja poistuu; maksaminen vaatii harkitun pitkän painalluksen.
MotionListMotionNumberMotionPresenceMotionHold - SaapuneetSuodatinvälilehdet live-laskureilla, pois pyyhkäistävät rivit ja lista, joka sulkee aukon.
MotionHighlightMotionListMotionSwipeMotionNumber