[javascript] 자바스크립트로 파도 움직임 제어하기

웹 애플리케이션을 개발할 때 자연스러운 애니메이션 효과를 구현하는 것은 중요합니다. 이번 블로그 포스트에서는 자바스크립트를 사용하여 파도의 움직임을 제어하는 방법에 대해 알아보겠습니다.

1. HTML 구조 설정하기

먼저, 파도를 표현하기 위한 HTML 구조를 설정해야 합니다. 여기서는 <div> 요소를 사용하여 파도의 컨테이너를 만들고, 그 안에 파도를 나타낼 <div> 요소를 추가합니다. 예시 코드는 아래와 같습니다.

<div id="wave-container">
  <div id="wave"></div>
</div>

2. CSS 스타일 지정하기

파도를 나타내기 위해 CSS 스타일을 지정해야 합니다. 여기서는 position 속성과 animation 속성을 사용하여 파도의 움직임을 정의합니다. 아래는 예시 코드입니다.

#wave-container {
  position: relative;
  height: 200px;
  overflow: hidden;
}

#wave {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 100px;
  background-color: #3498db;
  animation-name: wave-animation;
  animation-duration: 3s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}

@keyframes wave-animation {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

위 코드에서 wave 클래스가 있는 <div> 요소에 애니메이션을 적용합니다. animation-name 속성을 통해 wave-animation이라는 이름의 애니메이션을 사용하고, animation-duration 속성을 통해 애니메이션의 지속 시간을 지정합니다. 그리고 animation-iteration-count 속성을 infinite로 설정하여 애니메이션을 무한 반복합니다.

3. 자바스크립트로 파도 움직임 제어하기

이제 자바스크립트를 사용하여 파도의 움직임을 제어해보겠습니다. 아래는 예시 코드입니다.

// 파도 컨테이너 요소와 파도 요소의 참조를 가져옴
const waveContainer = document.getElementById("wave-container");
const wave = document.getElementById("wave");

// 파도 컨테이너의 너비를 파도의 한 주기로 설정
const waveCycle = wave.offsetWidth;
waveContainer.style.width = `${waveCycle}px`;

// 파도 컨테이너를 이동하는 애니메이션을 시작
function startWaveAnimation() {
  wave.animate([{ transform: "translateX(0)" }, { transform: "translateX(-100%)" }], {
    duration: 3000,
    iterations: Infinity,
    easing: "linear",
  });
}

startWaveAnimation();

위 코드는 먼저 파도 컨테이너와 파도 요소의 참조를 가져옵니다. 그리고 파도 컨테이너의 너비를 파도의 한 주기로 설정하여 파도가 자연스럽게 움직이도록 합니다. 마지막으로 startWaveAnimation() 함수를 호출하여 파도 컨테이너를 이동하는 애니메이션을 시작합니다.

결론

이제 자바스크립트를 사용하여 웹 페이지에 파도 움직임을 구현하는 방법을 알아보았습니다. 이를 응용하여 자신만의 창의적인 애니메이션 효과를 만들어보세요!