소개
이번 글에서는 자바스크립트를 사용하여 움직이는 파도 애니메이션을 만드는 방법과 사용자 입력을 처리하여 기능을 추가하는 방법에 대해 알아보겠습니다.
파도 애니메이션 만들기
처음으로 파도 애니메이션을 만드는 방법에 대해 알아보겠습니다. 웹 브라우저에서 파도 모션 효과를 구현하기 위해 HTML, CSS 및 JavaScript를 사용할 수 있습니다.
HTML 마크업
먼저, 움직이는 파도를 표현할 HTML 요소를 작성해야 합니다. 예를 들어, <div>
태그를 사용하여 파도를 포함시킬 컨테이너를 만들 수 있습니다. 컨테이너에는 특별한 클래스나 ID를 할당할 필요는 없지만, 애니메이션을 적용하기 쉽도록 클래스를 지정하는 것이 좋습니다.
<div class="wave-container"></div>
CSS 스타일링
다음으로, CSS를 사용하여 파도를 스타일링할 수 있습니다. background-color
속성을 사용하여 파도의 색상을 지정하고, animation
속성을 사용하여 애니메이션을 추가할 수 있습니다.
.wave-container {
width: 200px;
height: 200px;
background-color: #3f51b5;
animation: wave-animation 2s infinite;
}
@keyframes wave-animation {
0% {
transform: translateX(0);
}
50% {
transform: translateX(100%);
}
100% {
transform: translateX(0);
}
}
자바스크립트 추가
마지막으로, 자바스크립트를 사용하여 애니메이션에 대한 사용자 입력을 처리하고, 필요한 경우에 기능을 추가할 수 있습니다. 예를 들어, 마우스 오버 이벤트를 감지하여 파도의 애니메이션을 일시 정지하거나, 클릭 이벤트를 감지하여 다른 동작을 수행할 수 있습니다.
const waveContainer = document.querySelector('.wave-container');
waveContainer.addEventListener('mouseover', function() {
waveContainer.style.animationPlayState = 'paused';
});
waveContainer.addEventListener('mouseout', function() {
waveContainer.style.animationPlayState = 'running';
});
waveContainer.addEventListener('click', function() {
// 파도를 클릭한 경우 추가적인 동작을 수행할 수 있음
});
기능 추가하기
파도 애니메이션에 사용자 입력을 처리하는 것 외에도, 다른 기능들을 추가할 수 있습니다. 여기에는 파도가 움직이는 속도를 조절하는 슬라이더를 추가하거나, 파도의 높이가 동적으로 변경되는 기능을 추가하는 것 등이 있을 수 있습니다.
슬라이더로 속도 조절하기
사용자가 파도 애니메이션의 속도를 조절할 수 있는 슬라이더를 추가해 보겠습니다. HTML에서 슬라이더를 추가하고, JavaScript에서 사용자 입력을 감지하여 애니메이션의 속도를 업데이트할 수 있습니다.
<input type="range" id="speed-slider" min="1" max="10" value="5">
const speedSlider = document.querySelector('#speed-slider');
const waveContainer = document.querySelector('.wave-container');
speedSlider.addEventListener('input', function() {
const speed = speedSlider.value;
waveContainer.style.animationDuration = `${speed}s`;
});
파도 높이 동적 변경하기
또 다른 기능으로는 파도의 높이를 사용자 입력에 따라 동적으로 변경하는 것이 있습니다. 이를 위해 사용자의 입력을 감지하여 파도 컨테이너의 높이를 업데이트하고, 이에 따라 파도의 모양도 변경할 수 있습니다.
<input type="range" id="height-slider" min="100" max="300" value="200">
const heightSlider = document.querySelector('#height-slider');
const waveContainer = document.querySelector('.wave-container');
heightSlider.addEventListener('input', function() {
const height = heightSlider.value;
waveContainer.style.height = `${height}px`;
});
결론
이제 여러분은 자바스크립트를 사용하여 움직이는 파도 애니메이션을 만들고, 사용자 입력을 처리하여 원하는 기능을 추가할 수 있습니다. 이를 통해 웹 사이트나 애플리케이션에 생동감을 더할 수 있습니다. 창의력을 발휘하여 다양한 기능을 추가해보세요!
참고자료
- MDN Web Docs - Adding interactivity to your site with JavaScript
- CSS-Tricks - The Power of CSS Transforms
- W3Schools - CSS3 @keyframes Rule