Всички компоненти

MotionHeight

Височина, която следва съдържанието: свиване, разгъване и промени на съдържанието.

УебReact NativeСъдържание и размер

Опитайте

Подготовка на примера…

Най-кратка употреба

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

С какво се справя вместо вас

  • Анимира до действителната височина на съдържанието, измерена вместо вас.
  • Следва съдържанието, когато расте или се смалява, докато е отворено.
  • Започва от височината на екрана, дори по средата на промяна.
  • При промяна на размера на страницата височината се нагласява веднага, вместо да изостава от новата ширина.
  • Затвореното съдържание остава монтирано, но скрито и неактивно, така че състоянието му се запазва.

Подходящ за

  • Отговори в FAQ.
  • Група настройки, която се отваря.
  • Списък, чиято обща височина трябва да се анимира (обвийте MotionList).

Props

PropТипПо подразбиранеОписание
openbooleantruefalse свива до нулева височина; съдържанието остава монтирано, но скрито и неактивно.
childrenReactNodeСъдържанието.
aselement'div'Елементът за рендериране.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.
onMotionComplete(open) => voidИзпълнява се с open, след като височината спре.

Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.

Уеб и React Native

В уеб височината се възпроизвежда от Web Animations API, а съдържанието запазва обичайното си оформление.

В React Native view изрязва съдържанието и анимира височината на JS драйвера, защото височината е оформление.

Използван в тези примери

Търсене

Пишете, за да търсите в документацията.