스크롤을 이용한 이미지 애니메이션을 알아보자
아래로 스크롤하다가 해당 요소에 접근했을때 active 클래스명을 부여해주고 해당 클래스명이 붙으면 가려두었던 이미지가 왼쪽부터 오른쪽으로 나타나게 하는 코드입니다.
HTML 구조
<div class="con">
<div class="img_box">
<img src="이미지 경로" width="100%;">
</div>
</div>
CSS
.con .img_box {position:relative;}
.con .img_box:after {content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;background:#fff;transition:transform 0.8s ease-in-out;transform:translate3d(0, 0, 0);}
.con .img_box.active:after {transform:translate3d(100%, 0, 0);}
Javascript
<script>
document.addEventListener('scroll', function() {
const imgBoxes = document.querySelectorAll('.con .img_box');
imgBoxes.forEach(imgBox => {
const rect = imgBox.getBoundingClientRect();
// 요소가 뷰포트에 들어왔는지 확인
if (rect.top < window.innerHeight && rect.bottom > 0) {
imgBox.classList.add('active');
}
// active 클래스가 이미 존재하면 제거하지 않음
});
});
</script>
'코딩 > Javascript' 카테고리의 다른 글
[javascript] 화면 스크롤시 사이드 메뉴 색상 변경하기 (0) | 2024.08.01 |
---|