자바스크립트로 별이 떨어지는 애니메이션 만들기
별이 떨어지는 애니메이션은 웹사이트나 앱에 멋진 효과를 추가할 수 있는 재미있는 동적 요소입니다. 이번 튜토리얼에서는 자바스크립트를 사용하여 간단한 별이 떨어지는 애니메이션을 만들어보겠습니다.
HTML 준비하기
우선 별이 떨어지는 애니메이션을 표시할 HTML 요소를 준비해야 합니다.
<!DOCTYPE html>
<html>
<head>
<title>별이 떨어지는 애니메이션</title>
<style>
#stars {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
.star {
position: absolute;
width: 3px;
height: 3px;
background-color: white;
border-radius: 50%;
}
</style>
</head>
<body>
<div id="stars"></div>
<!-- 다른 콘텐츠들 -->
</body>
</html>
위의 코드는 stars
라는 id를 가진 div 요소를 추가하고, 스타일을 지정한 것입니다. 이 div는 별이 떨어지는 애니메이션을 표시하는 용도로 사용됩니다.
자바스크립트로 애니메이션 만들기
자바스크립트를 사용하여 별이 떨어지는 애니메이션을 만들어보겠습니다.
function createStar() {
const star = document.createElement('div');
star.className = 'star';
// 화면 위에서 시작하도록 top 값을 지정합니다.
star.style.top = '0';
// 랜덤한 위치에서 시작하도록 left 값을 지정합니다.
star.style.left = `${Math.random() * 100}%`;
// 랜덤한 크기로 별의 크기를 조정합니다.
const size = Math.random() * 2 + 1;
star.style.width = `${size}px`;
star.style.height = `${size}px`;
// 별이 아래로 떨어지도록 애니메이션을 추가합니다.
star.animate(
[
{ top: '0' },
{ top: '100%' }
],
{
duration: Math.random() * 1000 + 5000, // 애니메이션 지속 시간은 5초에서 6초 사이로 지정합니다.
easing: 'linear',
delay: Math.random() * 2000 // 애니메이션의 시작을 랜덤으로 지연시킵니다.
}
).onfinish = () => {
// 애니메이션이 종료된 후에는 별을 제거합니다.
star.remove();
};
return star;
}
function animateStars() {
const starsContainer = document.getElementById('stars');
setInterval(() => {
const star = createStar();
starsContainer.appendChild(star);
}, 300); // 0.3초마다 별을 추가합니다.
}
animateStars();
위 코드는 createStar
함수를 통해 별을 생성하고, 애니메이션을 추가하는 로직을 담고 있습니다. animateStars
함수는 일정 간격으로 createStar
함수를 호출하여 별을 추가하는 역할을 합니다.
실행 결과 확인하기
모든 준비가 되었으니 이제 웹 브라우저에서 애니메이션을 확인해보겠습니다. HTML 파일을 열고, 별들이 떨어지는 모습을 살펴봅시다.
결론
이번 튜토리얼에서는 자바스크립트를 사용하여 별이 떨어지는 애니메이션을 만드는 방법을 알아보았습니다. 이를 응용하여 다양한 애니메이션 효과를 구현할 수 있으니 창의력을 발휘해 보세요!
#JavaScript #애니메이션