Όλα τα components

MotionSwap

Περιεχόμενο που εναλλάσσεται με διασταυρούμενο σβήσιμο ενώ το μέγεθος ακολουθεί.

WebReact NativeΠεριεχόμενο και μέγεθος

Δοκιμάστε το

Προετοιμασία παραδείγματος…

Η πιο σύντομη χρήση

SaveButton.jsx
<button onClick={save}>
  <MotionSwap value={status} effect="up">
    {status === 'saving' ? 'Saving…' : status === 'saved' ? 'Saved' : 'Save'}
  </MotionSwap>
</button>;

Τι αναλαμβάνει για εσάς

  • Το στοιχείο αλλάζει από το μέγεθός του στην οθόνη στο φυσικό μέγεθος του νέου περιεχομένου, οπότε τα κουμπιά δεν πηδούν ποτέ.
  • Το παλιό περιεχόμενο σβήνει εκεί που ήταν ενώ το νέο εμφανίζεται· κανένα δεν αναδιατάσσεται κατά την εναλλαγή.
  • Η επιστροφή στη μέση μιας εναλλαγής συνεχίζει από ό,τι φαίνεται στην οθόνη αντί να στοιβάζει αντίγραφα.
  • Τα παιδιά με απλό κείμενο είναι το δικό τους value· για οτιδήποτε άλλο δώστε value.

Χρησιμοποιήστε το για

  • Αποθήκευση, μετά Αποθήκευση…, μετά Αποθηκεύτηκε.
  • Ένας σκελετός που γίνεται κάρτα προφίλ.
  • Ένα κουμπί αναπαραγωγής που γίνεται παύση.

Props

PropΤύποςΠροεπιλογήΠεριγραφή
valueunknownΤαυτότητα του περιεχομένου· μια νέα τιμή προκαλεί εναλλαγή. Τα παιδιά με απλό κείμενο είναι η δική τους ταυτότητα.
childrenReactNodeΤο περιεχόμενο.
aselement'span'Το στοιχείο προς απόδοση.
inlinebooleanas === 'span'Το true προσαρμόζει το μέγεθος στο περιεχόμενο (ετικέτες, εικονίδια)· το false γεμίζει το πλάτος του γονέα και κινεί το ύψος.
align'start' | 'center' | 'end''center'Πού βρίσκεται το περιεχόμενο όσο αλλάζει το μέγεθος.
effect'fade' | 'up' | 'down' | 'scale''fade'Πώς μπαίνει και βγαίνει το περιεχόμενο: το up ανεβαίνει, το down πέφτει, το scale μεγαλώνει.
transitionTransitionspringΜια καμπύλη timing { duration, easing } ή ένα ελατήριο { tempo: 'spring', spring }. Τα ελατήρια κρατούν την ορμή τους όταν διακόπτονται.
onMotionComplete(value) => voidΕκτελείται όταν ηρεμήσει η κίνηση.

Τα υπόλοιπα props πηγαίνουν στο στοιχείο που αποδίδεται, οπότε τα className, style και οι χειριστές συμβάντων λειτουργούν κανονικά.

Web και React Native

Το inline (προεπιλογή όταν αποδίδεται ως span) κινεί πλάτος και ύψος· το inline={false} γεμίζει το πλάτος του γονέα και κινεί το ύψος.

Στο React Native, οι εναλλαγές inline μετρούν το νέο περιεχόμενο σε μία γραμμή· χρησιμοποιήστε inline={false} για περιεχόμενο που αναδιπλώνεται.

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

Αναζήτηση

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