Toate componentele

MotionHeight

Înălțime care urmează conținutul: restrângere, extindere și schimbări de conținut.

WebReact NativeConținut și mărime

Încercați

Se pregătește exemplul…

Cea mai scurtă utilizare

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

Ce rezolvă în locul dumneavoastră

  • Animă până la înălțimea reală a conținutului, măsurată în locul dumneavoastră.
  • Urmează conținutul când crește sau scade cât e deschis.
  • Pornește de la înălțimea de pe ecran, chiar și în mijlocul unei schimbări.
  • Redimensionarea paginii se fixează imediat, în loc să rămână în urma noii lățimi.
  • Conținutul închis rămâne montat, dar ascuns și inert, așa că starea lui se păstrează.

Folosiți-o pentru

  • Răspunsuri dintr-un FAQ.
  • Un grup de setări care se deschide.
  • O listă a cărei înălțime totală ar trebui să se animeze (înfășurați MotionList).

Props

PropTipImplicitDescriere
openbooleantruefalse restrânge la înălțime zero; conținutul rămâne montat, dar ascuns și inert.
childrenReactNodeConținutul.
aselement'div'Elementul de randat.
transitionTransitionspringO curbă timing { duration, easing } sau un arc { tempo: 'spring', spring }. Arcurile își păstrează impulsul când sunt întrerupte.
onMotionComplete(open) => voidRulează cu open după ce înălțimea s-a așezat.

Celelalte props merg la elementul randat, așa că className, style și handlerele de evenimente funcționează ca de obicei.

Web și React Native

Pe web înălțimea se redă pe Web Animations API, iar conținutul își păstrează layoutul normal.

În React Native vizualizarea își decupează conținutul și animă înălțimea pe driverul JS, pentru că înălțimea este layout.

Folosită în aceste exemple

Căutare

Tastați pentru a căuta în documentație.