2022년 2월 4일
✍ Today
[챌린지] [노마드코더] 리액트 JS 챌린지/Assignment 5: Motion
- Framer Motion에서 transform-orgin을 해보았다. transformOrigin: left bottom 을 한 후에 whilehover: scale 효과가 잘 적용되었는데, overlay 애니매이션 후에는 transform-origin이 center로 다시 바뀌었다.

공식 홈페이지를 찾아보니 framer motion에서 transform origin을 적용하려면 originX, originY, originZ를 사용해야 되는 것 같다.
<Box
style={{ originX: 1, originY: 1 }}
whileHover={{ scale: 1.2 }}
onClick={() => setId(1)}
key={1}
layoutId={1}
/>
이후 위와 같은 방식으로 Box들의 style을 변경해주었더니 overlay motion 적용 후에도 정상적으로 transform-origin이 작동하는 것을 볼 수 있었다.
- transform-origin을 적용한 후 overlay 효과를 주는데 Box가 튀는 현상이 발생하였다. overlay 애니매이션이 실행된 후 다시 Box를 만드는 과정에서 transform-orgin을 적용해주지 않아 발생 되는 문제였다.
{id === 1 ? (
<Box
layoutId={id}
style={{
width: 220,
height: 200,
backgroundColor: "white",
originX: 1,
originY: 1
}}
/>
) : id === 4 ? (
<Box
layoutId={id}
style={{
width: 220,
height: 200,
backgroundColor: "white",
originX: 0,
originY: 0
}}
/>
) : null}
위와 같이 조건문을 활용해 id에 따라 originX, originY를 바꿔주어 문제를 해결할 수 있었다.
❓ Next
- 리액트 JS 챌린지를 과제를 할 예정이다.
'TIL' 카테고리의 다른 글
| [TIL]2022.02.09 (0) | 2022.02.09 |
|---|---|
| [TIL]2022.02.06 (0) | 2022.02.06 |
| [TIL]2022.02.02 (0) | 2022.02.03 |
| [TIL]2022.02.01 (0) | 2022.02.01 |
| [TIL]2022.01.31 (0) | 2022.01.31 |