모든 컴포넌트
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 | 타입 | 기본값 | 설명 |
|---|
src | string | | 제자리에 보이는 이미지. |
|---|
zoomSrc | string | | 다 불러오면 보여 줄 더 큰 이미지. 가로세로 비율을 같게 두세요. |
|---|
margin | number | 24 | 확대한 이미지 둘레에 남길 간격(픽셀). |
|---|
disabled | boolean | false | 확대를 끕니다. |
|---|
onZoomChange | (zoomed) => void | | 확대하면 true, 닫으면 false로 실행됩니다. |
|---|
backdropStyle | CSSProperties | | 배경의 인라인 스타일. |
|---|
transition | Transition | spring | 시간 곡선 { duration, easing } 또는 스프링 { tempo: 'spring', spring }. 스프링은 끊겨도 속도를 이어갑니다. |
|---|
그 밖의 props는 그려지는 요소로 전달되므로 className, style, 이벤트 핸들러를 평소처럼 쓸 수 있습니다.