Todos los componentes

MotionHeight

Altura que sigue a su contenido: plegar, desplegar y cambios de contenido.

WebReact NativeContenido y tamaño

Pruébalo

Preparando el ejemplo…

Uso mínimo

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

Lo que resuelve por ti

  • Anima hasta la altura real del contenido, medida por ti.
  • Sigue al contenido cuando crece o se encoge mientras está abierto.
  • Empieza desde la altura en pantalla, incluso a mitad de un cambio.
  • Al redimensionar la página, se ajusta al instante en lugar de quedarse atrás del nuevo ancho.
  • El contenido cerrado sigue montado pero oculto e inerte, así que conserva su estado.

Úsalo para

  • Respuestas en unas preguntas frecuentes.
  • Un grupo de ajustes que se despliega.
  • Una lista cuya altura total debe animarse (envuelve MotionList).

Props

PropTipoPor defectoDescripción
openbooleantruefalse pliega hasta altura cero; el contenido sigue montado pero oculto e inerte.
childrenReactNodeEl contenido.
aselement'div'El elemento que se renderiza.
transitionTransitionspringUna curva de tiempo { duration, easing } o un resorte { tempo: 'spring', spring }. Los resortes conservan su impulso cuando se interrumpen.
onMotionComplete(open) => voidSe ejecuta con open cuando la altura se ha asentado.

Las demás props van al elemento renderizado, así que className, style y los manejadores de eventos funcionan como siempre.

Web y React Native

En la web, la altura se reproduce con la Web Animations API y el contenido mantiene su layout normal.

En React Native, la vista recorta su contenido y anima la altura con el driver de JS, porque la altura es layout.

Se usa en estos ejemplos

Buscar

Escribe para buscar en la documentación.