티스토리 뷰
하던 프로젝트 중 넣을 애니메이션을 찾는데 원하는 애니메이션이 없어서 직접 만들었다. 본 프로젝트는 React로 제작하였으나, HTML, CSS로 구현가능해서 HTML, CSS 로 제작하였다. 그림 사이즈는 300X300이고 마우스 호버시 원래 이미지는 대각선 아래로, 호버 이미지는 대각선 위에서 등장한다.
<HTML>
<div class="parentDiv">
<div style="position:absolute"><img class="hoverImage" src="./hoverImage.png"/></div>
<img class="mainImage" src="./backgroundImage.png"/>
</div>
사진 2개를 같은 위치로 잡기 위해 parentDiv 안에 position absolute인 div, position relative인 img 태그가 위치해 있다. 보통 이 parentDiv를 복붙하면 position absolute인 div가 마음대로 움직일 경우 있는데 적절하게 위치 수정을 하면 된다.
<CSS>
.parentDiv{
width: 300px;
height: 300px;
position:relative;
overflow: hidden;
}
.parentDiv:hover .mainImage{
opacity: 0;
transform: translate(100%,100%);
transition-delay: 0.5s;
}
.mainImage{
position:relative;
transition-duration: 2s;
}
.hoverImage{
position: relative;
right : 300px;
top: -300px;
opacity: 0;
transition-duration: 2s;
}
.parentDiv:hover .hoverImage{
opacity: 1;
transform: translate(300px,300px);
transition-delay: 0.5s;
}
하나씩 설명하자면, parentDiv를 hover 했을 경우 mainImage클래스와 hoverImage 클래스가 각각 오른쪽300px, 아래300px 로 움직이게 되는데, hoverImage 클래스는 왼쪽 300px, 위쪽으로 300px 이미 위치해 있기 때문에 원래 위치로 오게된다.
그리고 opacity도 변화를 주게되는데, transition-duration은 2초, transition-delay는 0.5초이다.
parentDiv에 overflow 속성을 hidden으로 해놨기에 parentDiv 밖으로 나가는 사진은 화면에 나오지 않게 된다.
처음에 이미지 태그에 hover를 걸었었는데, 이는 이미지 위 마우스를 조금이라도 움직이면 다시 애니메이션이 시작되는 오류가 발생하였다. parentDiv:hover로 변경 후 이 오류는 사라졌다.
<공부자료>
https://m.blog.naver.com/parangbee/221739061995
'웹 개발' 카테고리의 다른 글
[HTML/CSS/Vanilla JS] 스크롤 애니메이션 (2) | 2023.07.27 |
---|---|
[React TS + CSS] 클릭시 퍼지는 버튼 메뉴 만들기 (0) | 2023.02.12 |
[React + Typescript + Express + MySQL] 개발 환경 구축하기[1] (0) | 2022.08.19 |
[React + TS + Styled Components] 진행바 구현하기 (props로 진행수치 받기) (0) | 2022.07.15 |
[React] 프로젝트 제작부터 간단한 작업을 통한 이해 (0) | 2022.07.04 |
- Total
- Today
- Yesterday
- 부트캠프
- FE 주니어
- Vercel
- Tailwind CSS
- Not Working
- Github Actions
- 국비지원취업
- netlify
- 깃허브 사용법
- RARS
- kpt
- ci/cd
- FE
- no found
- 인프콘 2023
- JavaScript
- 로딩성능
- next 14
- 이미지최적화
- 성능 개선
- 국비지원
- 패스트캠퍼스
- 프론트엔드 성능
- 모노레포
- 깃허브
- 리뷰
- 프론트엔드개발자
- 개발자 회고
- 사이드프로젝트
- 성능 측정
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |