모든 컴포넌트

MotionHeight

내용을 따라가는 높이. 접기, 펼치기, 내용 변화까지.

웹React Native내용과 크기

직접 해 보기

예제를 준비하는 중…

가장 짧은 사용법

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

대신 처리하는 일

  • 직접 측정한 내용의 실제 높이로 움직입니다.
  • 열린 동안 내용이 늘거나 줄어도 따라갑니다.
  • 바뀌는 도중이라도 화면에 보이는 높이에서 출발합니다.
  • 페이지 폭이 바뀔 때는 늦게 따라가지 않고 바로 맞춥니다.
  • 닫힌 내용은 마운트된 채 숨겨지고 비활성이 되어 상태가 유지됩니다.

이럴 때 쓰세요

  • 자주 묻는 질문의 답.
  • 펼쳐지는 설정 묶음.
  • 전체 높이까지 움직여야 하는 목록(MotionList를 감싸기).

Props

Prop타입기본값설명
openbooleantruefalse면 높이 0으로 접힙니다. 내용은 마운트된 채 숨겨지고 비활성이 됩니다.
childrenReactNode내용.
aselement'div'그릴 요소.
transitionTransitionspring시간 곡선 { duration, easing } 또는 스프링 { tempo: 'spring', spring }. 스프링은 끊겨도 속도를 이어갑니다.
onMotionComplete(open) => void높이가 멈추면 open과 함께 실행됩니다.

그 밖의 props는 그려지는 요소로 전달되므로 className, style, 이벤트 핸들러를 평소처럼 쓸 수 있습니다.

웹과 React Native

웹에서는 높이가 Web Animations API로 재생되고 안쪽 내용은 평소 레이아웃을 유지합니다.

React Native에서는 뷰가 내용을 잘라 보이며, 높이는 레이아웃이므로 JS 드라이버로 움직입니다.

이 컴포넌트를 쓰는 예제

검색

입력하면 문서를 검색합니다.