Alle Komponenten
MotionSwap
Inhalt, der überblendet, während seine Größe mitgeht.
WebReact NativeInhalt und Größe
Ausprobieren
Beispiel wird vorbereitet…
Kürzeste Nutzung
SaveButton.jsx<button onClick={save}>
<MotionSwap value={status} effect="up">
{status === 'saving' ? 'Saving…' : status === 'saved' ? 'Saved' : 'Save'}
</MotionSwap>
</button>;
Was sie dir abnimmt
- Das Element ändert seine Größe von der Größe auf dem Bildschirm zur natürlichen Größe des neuen Inhalts, sodass Buttons nie springen.
- Der alte Inhalt blendet dort aus, wo er war, während der neue einblendet; keiner von beiden fließt während des Wechsels neu um.
- Mitten im Wechsel zurückzuwechseln setzt bei dem an, was auf dem Bildschirm ist, statt Kopien zu stapeln.
- Reine Text-Kinder sind ihr eigener
value; für alles andere übergibst du value.
Gut für
- Speichern, dann Speichert…, dann Gespeichert.
- Ein Skeleton, das zur Profilkarte wird.
- Ein Play-Button, der zu Pause wird.
props
| Prop | Typ | Standard | Beschreibung |
|---|
value | unknown | | Identität des Inhalts; ein neuer Wert löst den Wechsel aus. Reine Text-Kinder sind ihre eigene Identität. |
|---|
children | ReactNode | | Der Inhalt. |
|---|
as | element | 'span' | Das zu rendernde Element. |
|---|
inline | boolean | as === 'span' | true passt die Größe an den Inhalt an (Labels, Icons); false füllt die Breite des Elternelements und animiert die Höhe. |
|---|
align | 'start' | 'center' | 'end' | 'center' | Wo der Inhalt sitzt, während sich die Größe ändert. |
|---|
effect | 'fade' | 'up' | 'down' | 'scale' | 'fade' | Wie Inhalt kommt und geht: up steigt, down fällt, scale wächst. |
|---|
transition | Transition | spring | Eine Timing-Kurve { duration, easing } oder eine Feder { tempo: 'spring', spring }. Federn behalten bei Unterbrechung ihren Schwung. |
|---|
onMotionComplete | (value) => void | | Läuft, wenn die Bewegung zur Ruhe kommt. |
|---|
Weitere props gehen an das gerenderte Element, also funktionieren className, style und Event-Handler wie gewohnt.
Verwendet in diesen Beispielen