Todos os componentes

MotionHeight

Altura que acompanha o conteúdo: recolher, expandir e mudanças de conteúdo.

WebReact NativeConteúdo e tamanho

Experimente

Preparando o exemplo…

Uso mais curto

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

O que ele resolve para você

  • Anima até a altura real do conteúdo, medida para você.
  • Acompanha o conteúdo quando ele cresce ou diminui enquanto está aberto.
  • Começa da altura na tela, mesmo no meio de uma mudança.
  • Redimensionar a página ajusta na hora, em vez de ficar atrasado em relação à nova largura.
  • O conteúdo fechado continua montado, mas oculto e inerte, então o estado é preservado.

Use para

  • Respostas em uma FAQ.
  • Um grupo de configurações que se abre.
  • Uma lista cuja altura total deve ser animada (envolva MotionList).

Props

PropTipoPadrãoDescrição
openbooleantruefalse recolhe até altura zero; o conteúdo continua montado, mas oculto e inerte.
childrenReactNodeO conteúdo.
aselement'div'O elemento a renderizar.
transitionTransitionspringUma curva de tempo { duration, easing } ou uma mola { tempo: 'spring', spring }. As molas mantêm o embalo quando interrompidas.
onMotionComplete(open) => voidRoda com open quando a altura se acomoda.

As outras props vão para o elemento renderizado, então className, style e handlers de eventos funcionam normalmente.

Web e React Native

Na web, a altura roda na Web Animations API e o conteúdo mantém o layout normal.

No React Native, a view recorta o conteúdo e anima a altura com o driver JS, porque altura é layout.

Usado nestes exemplos

Pesquisar

Digite para pesquisar na documentação.