Všetky komponenty

MotionHeight

Výška, ktorá sleduje obsah: zbalenie, rozbalenie a zmeny obsahu.

WebReact NativeObsah a veľkosť

Vyskúšajte

Príprava príkladu…

Najkratšie použitie

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

Čo za vás vyrieši

  • Animuje na skutočnú výšku obsahu, nameranú za vás.
  • Sleduje obsah, keď v otvorenom stave rastie alebo sa zmenšuje.
  • Začína od výšky na obrazovke, aj uprostred zmeny.
  • Zmena veľkosti stránky sa prispôsobí hneď namiesto toho, aby za novou šírkou zaostávala.
  • Zatvorený obsah zostáva pripojený, ale skrytý a neaktívny, takže si zachová stav.

Použite na

  • Odpovede v FAQ.
  • Skupina nastavení, ktorá sa otvára.
  • Zoznam, ktorého celková výška sa má animovať (obaľte MotionList).

Props

PropTypPredvolenéPopis
openbooleantruefalse zbalí na nulovú výšku; obsah zostane pripojený, ale skrytý a neaktívny.
childrenReactNodeObsah.
aselement'div'Prvok, ktorý sa renderuje.
transitionTransitionspringKrivka timing { duration, easing } alebo pružina { tempo: 'spring', spring }. Pružiny si pri prerušení zachovávajú hybnosť.
onMotionComplete(open) => voidSpustí sa s open, keď výška dosadne.

Ostatné props idú do renderovaného prvku, takže className, style a obsluhy udalostí fungujú ako obvykle.

Web a React Native

Na webe sa výška prehráva cez Web Animations API a obsah si zachováva bežné rozloženie.

V React Native view oreže obsah a animuje výšku na driveri JS, pretože výška je rozloženie.

Použité v týchto príkladoch

Hľadať

Píšte a hľadajte v dokumentácii.