자바스크립트로 화면을 충격적으로 흔들어 보이게 하는 애니메이션 구현하기

이번 튜토리얼에서는 자바스크립트를 사용하여 화면을 흔들어 보이게 하는 애니메이션을 구현하는 방법을 배워보겠습니다. 이러한 효과는 웹 사이트나 웹 애플리케이션이 동적이고 더욱 흥미로워지게 만들어줍니다.

1. CSS 트랜지션을 이용한 애니메이션

먼저, CSS의 transform 속성과 트랜지션(transition) 속성을 이용하여 간단한 흔들림 효과를 구현해보겠습니다.

.shake-animation {
  animation: shake 0.5s infinite;
}

@keyframes shake {
  0% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
  20%, 40%, 60%, 80% { transform: translateX(10px); }
  100% { transform: translateX(0); }
}

위의 CSS 코드는 shake-animation 클래스에 shake 애니메이션을 적용하여 화면을 흔들게 만듭니다. shake 애니메이션은 translateX 속성을 이용하여 요소를 좌우로 이동시키는 효과를 주는데, 일정한 간격으로 요소가 왼쪽과 오른쪽으로 흔들리도록 설정되어 있습니다. 이 애니메이션은 0.5초 간격으로 무한히 반복됩니다.

2. 자바스크립트로 애니메이션 시행하기

이제 자바스크립트를 사용하여 특정 조건에 따라 애니메이션을 실행해보겠습니다. 예를 들어, 버튼을 클릭하거나 특정 이벤트가 발생했을 때 화면을 흔들어 보이게 만들고 싶은 경우 등에 이 방법을 활용할 수 있습니다.

먼저, HTML에서 애니메이션을 적용할 요소를 선택할 수 있는 방법이 필요합니다. 예를 들어, shake-button 클래스를 가진 버튼을 클릭했을 때 애니메이션을 실행하도록 하겠습니다. 아래는 해당 버튼을 찾아 클릭 이벤트를 처리하는 자바스크립트 코드입니다.

const button = document.querySelector('.shake-button');
const targetElement = document.querySelector('.shake-animation');

button.addEventListener('click', () => {
  targetElement.classList.add('shake-animation');
  setTimeout(() => {
    targetElement.classList.remove('shake-animation');
  }, 500);
});

위의 코드는 shake-button 클래스를 가진 버튼을 클릭했을 때, shake-animation 클래스를 적용하여 애니메이션을 실행합니다. 클릭 이벤트가 발생하면, targetElement 요소에 shake-animation 클래스를 추가하고 0.5초 후에 다시 제거하여 애니메이션이 실행되도록 합니다.

마무리

이번 튜토리얼에서는 자바스크립트와 CSS를 사용하여 화면을 흔들어 보이게 하는 애니메이션을 구현하는 방법에 대해 알아보았습니다. 이러한 애니메이션은 웹 사이트나 웹 애플리케이션을 더욱 생동감 있게 만들어줄 수 있으며, 다양한 상황에 따라 적용할 수 있습니다.

더 많은 자바스크립트 애니메이션 효과를 적용하고 싶다면, CSS와 자바스크립트의 다른 기능과 속성을 조합하여 창의적인 애니메이션을 구현해보세요!

References