Összes komponens

MotionSwap

Áttűnéssel cserélődő tartalom, amelyet a méret követ.

WebReact NativeTartalom és méret

Próbálja ki

A példa előkészítése…

A legrövidebb használat

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

Amit Ön helyett elintéz

  • Az elem a képernyőn lévő méretéről az új tartalom természetes méretére változik, így a gombok soha nem ugranak.
  • A régi tartalom a helyén halványul el, miközben az új beúszik; csere közben egyik sem rendeződik át.
  • Ha csere közben visszavált, onnan folytatja, ami a képernyőn van, ahelyett hogy másolatokat halmozna.
  • A sima szöveges gyermekek saját maguk value-ja; minden máshoz adjon át value-t.

Mire használja

  • Mentés, aztán Mentés…, aztán Mentve.
  • Vázelem, amelyből profilkártya lesz.
  • Lejátszás gomb, amelyből szünet lesz.

Props

PropTípusAlapértékLeírás
valueunknownA tartalom identitása; új érték cserét indít. A sima szöveges gyermekek saját maguk identitása.
childrenReactNodeA tartalom.
aselement'span'A renderelendő elem.
inlinebooleanas === 'span'A true a tartalomhoz méretez (címkék, ikonok); a false kitölti a szülő szélességét, és a magasságot animálja.
align'start' | 'center' | 'end''center'Hol van a tartalom, amíg a méret változik.
effect'fade' | 'up' | 'down' | 'scale''fade'Hogyan lép be és ki a tartalom: az up felemelkedik, a down lesüllyed, a scale megnő.
transitionTransitionspringTiming-görbe { duration, easing } vagy rugó { tempo: 'spring', spring }. A rugók megszakításkor megtartják a lendületüket.
onMotionComplete(value) => voidAkkor fut le, amikor a mozgás megáll.

A többi props a renderelt elemre kerül, így a className, a style és az eseménykezelők a szokásos módon működnek.

Web és React Native

Az inline (alapértelmezés span-ként renderelve) a szélességet és a magasságot animálja; az inline={false} kitölti a szülő szélességét, és a magasságot animálja.

React Native alatt az inline cserék egy sorban mérik az új tartalmat; tördelődő tartalomhoz használja az inline={false} beállítást.

Ezekben a példákban használva

Keresés

Gépeljen a dokumentációban való kereséshez.