Tutti i componenti

MotionHeight

Un’altezza che segue il contenuto: chiusura, apertura e cambi di contenuto.

WebReact NativeContenuto e dimensione

Provalo

Preparazione dell’esempio…

L’uso più breve

Details.jsx
<button onClick={() => setOpen(!open)}>Details</button>
<MotionHeight open={open}>
  <Answer />
</MotionHeight>

Di che cosa si occupa al posto tuo

  • Anima fino all’altezza reale del contenuto, misurata al posto tuo.
  • Segue il contenuto quando cresce o si riduce mentre è aperto.
  • Parte dall’altezza sullo schermo, anche nel mezzo di una modifica.
  • Ridimensionare la pagina si adegua subito invece di restare indietro rispetto alla nuova larghezza.
  • Il contenuto chiuso resta montato ma nascosto e inerte, quindi il suo stato si conserva.

Usalo per

  • Risposte in una FAQ.
  • Un gruppo di impostazioni che si apre.
  • Una lista la cui altezza totale deve animarsi (avvolgi MotionList).

Props

PropTipoPredefinitoDescrizione
openbooleantruefalse riduce l’altezza a zero; il contenuto resta montato ma nascosto e inerte.
childrenReactNodeIl contenuto.
aselement'div'L’elemento da renderizzare.
transitionTransitionspringUna curva di timing { duration, easing } o una molla { tempo: 'spring', spring }. Le molle conservano lo slancio quando vengono interrotte.
onMotionComplete(open) => voidViene eseguito con open quando l’altezza si è assestata.

Le altre props vanno all’elemento renderizzato, quindi className, style e gli event handler funzionano come sempre.

Web e React Native

Sul web l’altezza viene riprodotta dalla Web Animations API e il contenuto mantiene il suo layout normale.

Su React Native la view ritaglia il contenuto e anima l’altezza sul driver JS, perché l’altezza è layout.

Usato in questi esempi

Cerca

Scrivi per cercare nella documentazione.