useSpring에서 예시을 활용해서 효과를 구현했는데 회전하는 게 이상했다.
사진들이 2열에 걸쳐서 보여지는데 모두 한쪽으로만 회전이 되고 반대쪽은 회전이 되지 않았다.
위에서 나온 예시를 클릭해서 styles.css
-> .card {}
에 margin-rihgt : 500px;
을 적용하고 다시 카드를 움직여보면 무슨 뜻인지 바로 이해갈 것이다!!!
주어진 예시는 효과를 주고 싶은 물체가 가운데에 있는 경우에만 제대로 효과를 보여주는 것 같은데 코드를 쭉 보고 이 문제를 해결해보자🤔
화면에 목표가 위치한 위치가 다 다르더라도 동일한 효과가 적용될 수 있도록 해주기
예시에서 마우스를 직접 움직여 보면 더 쉽게 이해할 수 있다.
document.getElementsByClassName("photo")
과 map의 index를 사용해서 마우스를 올렸을 때 몇번째 사진 위에 마우스가 있는지 알아내는 것까지 진행함.getBoundingClientRect().top
, getBoundingClientRect().left
을 통해 각 div의 좌표를 얻고 그걸 통해서 움직임을 수정해야겠다.getElementsByClassName
을 사용했을 때 문제점은 없는지 추후에 계속 코드 업데이트를 해야할 것 같음.상대좌표, 절대좌표를 공부하고 다시 도전!
움직임이 훨씬 부드럽지만 1열만 제대로 나오거나, 2열만 제대로 나오는 경우가 발생한다.(밑에 사진이 그 예시이다.)
1열은 targetPhoto[number].getBoundingClientRect().left
2열에 targetPhoto[number].getBoundingClientRect().right
를 적용할 경우 제대로 동작하는 것을 발견😭
드디어 성공이다 👍