Все компоненты
MotionHeight
Высота, которая следует за содержимым: сворачивание, разворачивание и изменения содержимого.
ВебReact NativeСодержимое и размер
Попробуйте
Кратчайшее использование
Details.jsx<button onClick={() => setOpen(!open)}>Details</button>
<MotionHeight open={open}>
<Answer />
</MotionHeight>
Что он берёт на себя
- Анимирует к реальной высоте содержимого, измеренной за вас.
- Следует за содержимым, когда оно растёт или уменьшается в открытом состоянии.
- Начинает с высоты на экране — даже посреди изменения.
- При изменении размера страницы высота сразу подстраивается, а не отстаёт от новой ширины.
- Закрытое содержимое остаётся смонтированным, но скрытым и неактивным, поэтому его состояние сохраняется.
Для чего подходит
- Ответы в FAQ.
- Раскрывающаяся группа настроек.
- Список, общая высота которого должна анимироваться (оберните
MotionList).
Props
| Проп | Тип | По умолчанию | Описание |
|---|
open | boolean | true | false сворачивает до нулевой высоты; содержимое остаётся смонтированным, но скрытым и неактивным. |
|---|
children | ReactNode | | Содержимое. |
|---|
as | element | 'div' | Элемент для рендера. |
|---|
transition | Transition | spring | Кривая timing { duration, easing } или пружина { tempo: 'spring', spring }. При прерывании пружины сохраняют инерцию. |
|---|
onMotionComplete | (open) => void | | Выполняется с open, когда высота остановилась. |
|---|
Остальные props передаются отрендеренному элементу, поэтому className, style и обработчики событий работают как обычно.