Alle componenten

MotionHeight

Hoogte die de inhoud volgt: inklappen, uitklappen en inhoudswijzigingen.

WebReact NativeInhoud en grootte

Probeer het

Voorbeeld voorbereiden…

Kortste gebruik

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

Wat het voor je regelt

  • Animeert naar de echte hoogte van de inhoud, voor je gemeten.
  • Volgt de inhoud als die groeit of krimpt terwijl hij open is.
  • Begint bij de hoogte op het scherm, zelfs midden in een wijziging.
  • Het formaat van de pagina wijzigen klikt direct mee in plaats van achter de nieuwe breedte aan te lopen.
  • Dichte inhoud blijft gemount maar verborgen en inert, dus de state blijft behouden.

Gebruik het voor

  • Antwoorden in een FAQ.
  • Een groep instellingen die opengaat.
  • Een lijst waarvan de totale hoogte moet animeren (wikkel MotionList).

Props

PropTypeStandaardBeschrijving
openbooleantruefalse klapt in tot hoogte nul; de inhoud blijft gemount maar verborgen en inert.
childrenReactNodeDe inhoud.
aselement'div'Het element dat wordt gerenderd.
transitionTransitionspringEen timingcurve { duration, easing } of een veer { tempo: 'spring', spring }. Veren behouden hun momentum als ze worden onderbroken.
onMotionComplete(open) => voidDraait met open zodra de hoogte tot rust is gekomen.

Andere props gaan naar het gerenderde element, dus className, style en event handlers werken zoals gewoonlijk.

Web en React Native

Op het web speelt de hoogte af op de Web Animations API en houdt de inhoud zijn normale layout.

In React Native knipt de view zijn inhoud af en animeert de hoogte op de JS-driver, omdat hoogte layout is.

Gebruikt in deze voorbeelden

Zoeken

Typ om de documentatie te doorzoeken.