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

웹 개발에서 애니메이션은 사용자 경험을 향상시키는 데 중요한 역할을 합니다. 그림자 효과는 요소가 부드럽게 나타나거나 사라지는 페이드 인/아웃 애니메이션을 구현할 때 매우 유용합니다. 자바스크립트로 이러한 그림자 효과를 쉽게 적용할 수 있습니다. 이번 포스트에서는 자바스크립트와 CSS를 활용하여 그림자 효과를 생성하는 방법을 알아보겠습니다.

HTML 구조

먼저 HTML에서 그림자 효과를 적용할 요소를 생성합니다. 아래는 예시로 div 요소를 사용하는 간단한 구조입니다.

<div id="box" class="box"></div>
<button onclick="fadeIn()">Fade In</button>
<button onclick="fadeOut()">Fade Out</button>

CSS 스타일

다음으로 CSS를 사용하여 요소에 초기 스타일을 정의합니다. 그림자 효과를 위해 box-shadow 속성을 이용합니다.

.box {
  width: 200px;
  height: 200px;
  background-color: #f0f0f0;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);
  display: none; /* 초기에는 숨겨진 상태로 설정 */
}

자바스크립트로 애니메이션 적용하기

이제 자바스크립트로 애니메이션을 적용하는 함수를 작성합니다. 아래는 순수 자바스크립트로 페이드 인/아웃 효과를 적용하는 예시 코드입니다.

function fadeIn() {
  var box = document.getElementById('box');
  box.style.opacity = 0;
  box.style.display = 'block';

  var tick = function() {
    box.style.opacity = +box.style.opacity + 0.1;

    if (+box.style.opacity < 1) {
      (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);
    }
  };

  tick();
}

function fadeOut() {
  var box = document.getElementById('box');
  box.style.opacity = 1;

  var tick = function() {
    box.style.opacity = +box.style.opacity - 0.1;

    if (+box.style.opacity > 0) {
      (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);
    } else {
      box.style.display = 'none';
    }
  };

  tick();
}

위 코드는 fadeIn 함수와 fadeOut 함수를 통해 그림자 박스를 부드럽게 나타나거나 사라지도록 설정합니다.

요약

자바스크립트를 사용하여 그림자 효과를 쉽게 적용할 수 있습니다. 애니메이션을 추가하여 웹사이트나 웹 애플리케이션의 사용자 경험을 더욱 향상시킬 수 있습니다. 이를 응용하여 다양한 요소에 페이드 인/아웃 효과를 적용해 보세요!