Alla komponenter

MotionHeight

Höjd som följer innehållet: fälla ihop, fälla ut och innehållsändringar.

WebbReact NativeInnehåll och storlek

Prova

Förbereder exemplet…

Kortaste användning

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

Det här sköter den åt dig

  • Animerar till innehållets verkliga höjd, uppmätt åt dig.
  • Följer innehållet när det växer eller krymper medan det är öppet.
  • Börjar från höjden på skärmen, även mitt i en ändring.
  • Att ändra sidans storlek anpassar sig direkt i stället för att släpa efter den nya bredden.
  • Stängt innehåll förblir monterat men dolt och inert, så dess state behålls.

Använd den för

  • Svar i en FAQ.
  • En grupp inställningar som öppnas.
  • En lista vars totala höjd ska animeras (svep in MotionList).

Props

PropTypStandardBeskrivning
openbooleantruefalse fäller ihop till höjden noll; innehållet förblir monterat men dolt och inert.
childrenReactNodeInnehållet.
aselement'div'Elementet som renderas.
transitionTransitionspringEn timingkurva { duration, easing } eller en fjäder { tempo: 'spring', spring }. Fjädrar behåller sitt momentum när de avbryts.
onMotionComplete(open) => voidKörs med open när höjden har landat.

Andra props går till det renderade elementet, så className, style och händelsehanterare fungerar som vanligt.

Webb och React Native

På webben spelas höjden upp av Web Animations API och innehållet behåller sin vanliga layout.

I React Native klipper vyn sitt innehåll och animerar höjden på JS-driver, eftersom höjd är layout.

Används i de här exemplen

Sök

Skriv för att söka i dokumentationen.