Kaikki komponentit
MotionSwap
Sisältö, joka ristihäivyttyy koon seuratessa.
WebReact NativeSisältö ja koko
Kokeile
Valmistellaan esimerkkiä…
Lyhin käyttö
SaveButton.jsx<button onClick={save}>
<MotionSwap value={status} effect="up">
{status === 'saving' ? 'Saving…' : status === 'saved' ? 'Saved' : 'Save'}
</MotionSwap>
</button>;
Mitä se hoitaa puolestasi
- Elementti muuttaa kokoaan näytöllä olevasta koosta uuden sisällön luonnolliseen kokoon, joten painikkeet eivät koskaan hyppää.
- Vanha sisältö häipyy paikallaan, kun uusi tulee esiin; kumpikaan ei asetu uudelleen vaihdon aikana.
- Takaisin vaihtaminen kesken vaihdon jatkaa siitä, mitä näytöllä on, kasaamatta kopioita.
- Pelkkää tekstiä olevat lapset ovat oma
value-arvonsa; anna value kaikelle muulle.
Käytä sitä
- Tallenna, sitten Tallennetaan…, sitten Tallennettu.
- Luuranko, josta tulee profiilikortti.
- Toistopainike, josta tulee taukopainike.
Props
| Prop | Tyyppi | Oletus | Kuvaus |
|---|
value | unknown | | Sisällön identiteetti; uusi arvo käynnistää vaihdon. Pelkkää tekstiä olevat lapset ovat oma identiteettinsä. |
|---|
children | ReactNode | | Sisältö. |
|---|
as | element | 'span' | Renderöitävä elementti. |
|---|
inline | boolean | as === 'span' | true mitoittaa sisällön mukaan (nimikkeet, kuvakkeet); false täyttää vanhemman leveyden ja animoi korkeutta. |
|---|
align | 'start' | 'center' | 'end' | 'center' | Missä sisältö on koon muuttuessa. |
|---|
effect | 'fade' | 'up' | 'down' | 'scale' | 'fade' | Miten sisältö saapuu ja poistuu: up nousee, down laskee, scale kasvaa. |
|---|
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, kun liike asettuu. |
|---|
Muut props-arvot menevät renderöidylle elementille, joten className, style ja tapahtumankäsittelijät toimivat tavalliseen tapaan.
Käytetty näissä esimerkeissä