모든 컴포넌트

MotionZoom

제자리에서 전체 화면으로 커지는 이미지. 끌어서 치우면 닫힙니다.

웹React Native겹침 화면

직접 해 보기

예제를 준비하는 중…

가장 짧은 사용법

Photo.jsx
<MotionZoom
  src={photo.thumb}
  zoomSrc={photo.full}
  width={240}
  height={160}
  style={{ objectFit: 'cover', borderRadius: 12 }}
/>;

대신 처리하는 일

  • 클릭, Enter, Space로 이미지가 있던 자리에서 margin 안쪽 전체 화면까지 커집니다.
  • 커지는 사본은 object-fit 자르기와 모서리 둥글기까지 썸네일과 똑같은 모습에서 시작합니다.
  • zoomSrc는 다 불러온 뒤 서서히 나타납니다.
  • 클릭, Escape, 끌어서 치우기로 닫힙니다. 빠르게 던져도 닫히고, 짧게 끌면 제자리로 돌아옵니다.

이럴 때 쓰세요

  • 사진 격자.
  • 상품 갤러리.
  • 블로그 글 속 이미지.

Props

Prop타입기본값설명
srcstring제자리에 보이는 이미지.
zoomSrcstring다 불러오면 보여 줄 더 큰 이미지. 가로세로 비율을 같게 두세요.
marginnumber24확대한 이미지 둘레에 남길 간격(픽셀).
disabledbooleanfalse확대를 끕니다.
onZoomChange(zoomed) => void확대하면 true, 닫으면 false로 실행됩니다.
backdropStyleCSSProperties배경의 인라인 스타일.
transitionTransitionspring시간 곡선 { duration, easing } 또는 스프링 { tempo: 'spring', spring }. 스프링은 끊겨도 속도를 이어갑니다.

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

웹과 React Native

겹침 화면은 확대된 동안에만 존재하므로(웹에서는 최상위 레이어 대화상자) 이미지는 문단 안 어디에나 둘 수 있습니다. 그 밖의 props는 img로 갑니다.

React Native에서는 source와 zoomSource를 넘기며, 겹침 화면은 투명한 Modal입니다.

이 컴포넌트를 쓰는 예제

검색

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