[javascript] 자바스크립트로 페이드 아웃 애니메이션을 활용한 이미지 전환 효과

이미지 간 부드러운 전환 효과를 주기 위해 자바스크립트로 페이드 아웃 애니메이션을 활용하는 방법을 알아보겠습니다.

필요한 HTML 요소 준비

우선, 이미지 전환 효과를 적용할 이미지를 담을 HTML 요소를 준비합니다.

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>Fade Out 애니메이션 이미지 전환</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div class="image-container">
    <img src="image1.jpg" id="image1" class="active">
    <img src="image2.jpg" id="image2">
  </div>

  <button onclick="fadeOut()">이미지 전환</button>

  <script src="script.js"></script>
</body>
</html>

CSS 스타일링

이미지 간 페이드 아웃 전환 효과를 적용하기 위해 CSS를 사용하여 요소들을 스타일링합니다.

.image-container {
  position: relative;
  width: 600px;
  height: 400px;
  overflow: hidden;
}

.image-container img {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 1;
  transition: opacity 1s;
  z-index: 1;
}

.image-container img:not(.active) {
  opacity: 0;
}

자바스크립트로 페이드 아웃 애니메이션 적용

이미지 전환 버튼을 클릭했을 때 자바스크립트로 페이드 아웃 애니메이션을 적용하여 이미지를 전환합니다.

function fadeOut() {
  const activeImage = document.querySelector('.image-container img.active');
  const nextImage = document.querySelector('.image-container img:not(.active)');

  activeImage.style.opacity = 0;

  setTimeout(() => {
    activeImage.classList.remove('active');
    activeImage.style.zIndex = -1;
    nextImage.style.zIndex = 1;
    nextImage.style.opacity = 1;
    nextImage.classList.add('active');
  }, 1000);
}

이제 이미지 전환 버튼을 클릭하면 페이드 아웃 애니메이션이 적용되면서 이미지가 부드럽게 전환됩니다.

이렇게 하면 자바스크립트를 사용하여 이미지 간 페이드 아웃 애니메이션을 적용하여 부드럽게 이미지를 전환할 수 있습니다.

참고문헌: