Tüm bileşenler

MotionSwap

Boyutu onu izlerken çapraz geçişle değişen içerik.

WebReact Nativeİçerik ve boyut

Deneyin

Örnek hazırlanıyor…

En kısa kullanım

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

Sizin yerinize hallettikleri

  • Öğe ekrandaki boyutundan yeni içeriğin doğal boyutuna geçer; düğmeler asla zıplamaz.
  • Eski içerik olduğu yerde solarken yeni içerik belirir; geçiş sırasında hiçbiri yeniden akmaz.
  • Geçişin ortasında geri değiştirmek, kopyaları üst üste yığmak yerine ekranda olandan devam eder.
  • Düz metin çocuklar kendi value'larıdır; diğer her şey için value verin.

Şunlar için kullanın

  • Kaydet, sonra Kaydediliyor…, sonra Kaydedildi.
  • Profil kartına dönüşen bir iskelet.
  • Duraklat düğmesine dönüşen bir oynat düğmesi.

Props

PropTipVarsayılanAçıklama
valueunknownİçeriğin kimliği; yeni bir değer değişimi tetikler. Düz metin çocuklar kendi kimlikleridir.
childrenReactNodeİçerik.
aselement'span'Render edilecek öğe.
inlinebooleanas === 'span'true içeriğe göre boyutlanır (etiketler, simgeler); false üst öğenin genişliğini doldurur ve yüksekliği canlandırır.
align'start' | 'center' | 'end''center'Boyut değişirken içeriğin konumu.
effect'fade' | 'up' | 'down' | 'scale''fade'İçeriğin nasıl girip çıktığı: up yükselir, down düşer, scale büyür.
transitionTransitionspringBir timing eğrisi { duration, easing } ya da bir yay { tempo: 'spring', spring }. Yaylar kesildiğinde momentumlarını korur.
onMotionComplete(value) => voidHareket yerleşince çalışır.

Diğer props render edilen öğeye gider; böylece className, style ve olay işleyiciler her zamanki gibi çalışır.

Web ve React Native

inline (span olarak render edildiğinde varsayılan) genişlik ve yüksekliği canlandırır; inline={false} üst öğenin genişliğini doldurur ve yüksekliği canlandırır.

React Native'de satır içi geçişler yeni içeriği tek satırda ölçer; kayan içerik için inline={false} kullanın.

Bu örneklerde kullanıldı

Ara

Belgelerde aramak için yazın.