[javascript] 자바스크립트로 페이드 인/아웃 애니메이션을 적용할 수 있는 블러 효과

이번 포스트에서는 자바스크립트를 사용하여 페이드 인/아웃 애니메이션을 적용하여 이미지에 블러 효과를 생성하는 방법에 대해 알아보겠습니다.

필요한 기술

  1. HTML/CSS
  2. 자바스크립트

알고리즘 개요

  1. HTML에 이미지를 표시하는 요소를 추가합니다.
  2. CSS를 사용하여 이미지에 초기 블러 효과를 적용합니다.
  3. 자바스크립트를 사용하여 페이드 인/아웃 애니메이션을 적용하여 블러 효과를 만듭니다.

코드 예시

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="styles.css">
  <title>Blur Effect</title>
</head>
<body>
  <div class="image-container">
    <img src="image.jpg" alt="Image">
    <div class="overlay"></div>
  </div>

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

CSS (styles.css)

.image-container {
  position: relative;
  display: inline-block;
}

.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.5);
  transition: background-color 0.5s;
}

img {
  display: block;
  width: 100%;
  height: auto;
  filter: blur(10px);
  transition: filter 0.5s;
}

자바스크립트 (script.js)

const overlay = document.querySelector('.overlay');
const image = document.querySelector('img');

overlay.addEventListener('mouseenter', () => {
  overlay.style.backgroundColor = 'rgba(255, 255, 255, 0)';
  image.style.filter = 'blur(0px)';
});

overlay.addEventListener('mouseleave', () => {
  overlay.style.backgroundColor = 'rgba(255, 255, 255, 0.5)';
  image.style.filter = 'blur(10px)';
});

이제 위의 코드를 통해 이미지에 마우스를 올리면 페이드 인/아웃 애니메이션을 통해 블러 효과가 적용되는 것을 확인할 수 있습니다.

마치며

이렇게 자바스크립트의 이벤트 리스너와 CSS의 트랜지션을 활용하여 페이드 인/아웃 애니메이션을 적용하여 이미지에 블러 효과를 만들어 보았습니다. 자바스크립트와 CSS를 활용하여 다양한 시각적 효과를 구현할 수 있으니 창의적으로 활용해보시기 바랍니다.

참고문헌: