Kaikki komponentit

MotionHeight

Sisältöä seuraava korkeus: tiivistäminen, laajentaminen ja sisällön muutokset.

WebReact NativeSisältö ja koko

Kokeile

Valmistellaan esimerkkiä…

Lyhin käyttö

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

Mitä se hoitaa puolestasi

  • Animoi sisällön todelliseen korkeuteen, joka mitataan puolestasi.
  • Seuraa sisältöä, kun se kasvaa tai pienenee auki ollessaan.
  • Alkaa näytöllä olevasta korkeudesta keskellä muutostakin.
  • Sivun koon muuttaminen napsahtaa heti eikä jää jälkeen uudesta leveydestä.
  • Suljettu sisältö pysyy kiinnitettynä mutta piilotettuna ja passiivisena, joten sen tila säilyy.

Käytä sitä

  • FAQ-vastaukset.
  • Avautuva asetusryhmä.
  • Lista, jonka kokonaiskorkeuden pitää animoitua (kääri MotionList).

Props

PropTyyppiOletusKuvaus
openbooleantruefalse tiivistää nollakorkeuteen; sisältö pysyy kiinnitettynä mutta piilotettuna ja passiivisena.
childrenReactNodeSisältö.
aselement'div'Renderöitävä elementti.
transitionTransitionspringTiming-käyrä { duration, easing } tai jousi { tempo: 'spring', spring }. Jouset säilyttävät liikemääränsä keskeytettäessä.
onMotionComplete(open) => voidSuoritetaan open-arvon kanssa, kun korkeus on asettunut.

Muut props-arvot menevät renderöidylle elementille, joten className, style ja tapahtumankäsittelijät toimivat tavalliseen tapaan.

Web ja React Native

Webissä korkeus toistetaan Web Animations API:lla, ja sisältö säilyttää normaalin asettelunsa.

React Nativessa näkymä rajaa sisältönsä ja animoi korkeutta JS-driverilla, koska korkeus on asettelua.

Käytetty näissä esimerkeissä

Haku

Kirjoita hakeaksesi dokumentaatiosta.