Tous les composants

MotionHeight

Une hauteur qui suit son contenu : repli, dépli et changements de contenu.

WebReact NativeContenu et taille

Essayer

Préparation de l’exemple…

Usage minimal

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

Ce qu’il gère pour vous

  • Anime jusqu’à la hauteur réelle du contenu, mesurée pour vous.
  • Suit le contenu quand il grandit ou rétrécit alors qu’il est ouvert.
  • Part de la hauteur à l’écran, même en plein changement.
  • Redimensionner la page ajuste immédiatement au lieu de traîner derrière la nouvelle largeur.
  • Le contenu fermé reste monté mais masqué et inerte : son état est conservé.

À utiliser pour

  • Les réponses d’une FAQ.
  • Un groupe de réglages qui se déploie.
  • Une liste dont la hauteur totale doit s’animer (enveloppez MotionList).

Props

PropTypeDéfautDescription
openbooleantruefalse replie à une hauteur nulle ; le contenu reste monté mais masqué et inerte.
childrenReactNodeLe contenu.
aselement'div'L’élément à rendre.
transitionTransitionspringUne courbe de temps { duration, easing } ou un ressort { tempo: 'spring', spring }. Les ressorts gardent leur élan quand ils sont interrompus.
onMotionComplete(open) => voidS’exécute avec open une fois la hauteur posée.

Les autres props vont à l’élément rendu : className, style et les gestionnaires d’événements fonctionnent comme d’habitude.

Web et React Native

Sur le web, la hauteur est jouée par la Web Animations API et le contenu garde sa mise en page normale.

Sur React Native, la vue rogne son contenu et anime la hauteur avec le driver JS, car la hauteur relève de la mise en page.

Utilisé dans ces exemples

Rechercher

Tapez pour rechercher dans la documentation.