자바스크립트로 눈이 내리는 애니메이션 만들기
이번에는 자바스크립트를 사용하여 눈이 내리는 애니메이션을 만들어보겠습니다. 이 애니메이션은 웹페이지에 눈이 내리는 효과를 주어 새로운 겨울 분위기를 연출할 수 있습니다.
필요한 자원 준비하기
우선, 이 애니메이션을 만들기 위해 몇 가지 필요한 자원을 준비해야 합니다.
- 눈 이미지 파일
- HTML 파일
- CSS 파일
- JavaScript 파일
HTML 구조 설정하기
HTML 파일에서 애니메이션을 표현할 요소를 설정해야 합니다. 일반적으로 <div>
태그를 사용하여 요소를 생성합니다. 이번 예시에서는 눈 한 개를 표현하기 위해 <div class="snowflake"></div>
요소를 사용하겠습니다. 그리고 이 요소를 눈이 내리는 위치에 배치하기 위해 <div id="container"></div>
요소 안에 넣을 것입니다.
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="container">
<div class="snowflake"></div>
</div>
<script src="script.js"></script>
</body>
</html>
CSS 스타일 지정하기
애니메이션 효과를 주기 위해 CSS를 활용합니다. 눈의 모양을 지정하기 위해 미리 준비한 눈 이미지 파일을 사용하겠습니다.
.snowflake {
position: absolute;
width: 36px;
height: 36px;
background-image: url('snowflake.png');
background-size: cover;
}
자바스크립트로 애니메이션 구현하기
이제 자바스크립트를 사용하여 눈이 내리는 애니메이션을 구현해보겠습니다. 우선, 눈이 내리는 속도를 조절하기 위해 speed
변수를 정의합니다. 그리고 눈 요소를 생성하여 화면에 추가합니다.
var speed = 3; // 눈이 내려가는 속도 조절
function createSnowflake() {
var snowflake = document.createElement('div'); // 눈 요소 생성
snowflake.classList.add('snowflake'); // 클래스 추가
// 랜덤한 시작 위치와 속도 지정
var startX = Math.random() * window.innerWidth;
var startOpacity = 0.5 + Math.random() * 0.5;
var startSpeed = 1 + Math.random() * speed;
snowflake.style.left = startX + 'px'; // 시작 위치 설정
snowflake.style.opacity = startOpacity; // 투명도 설정
// 눈이 내려가는 애니메이션 설정
var animation = snowflake.animate([
{ transform: 'translateY(0px)', opacity: startOpacity },
{ transform: 'translateY('+ window.innerHeight +'px)', opacity: 0 }
], {
duration: startSpeed * 1000, // 애니메이션 속도 설정
iterations: Infinity // 무한 반복
});
// 애니메이션이 끝나면 눈 요소 제거
animation.onfinish = function() {
snowflake.remove();
};
// 눈 요소를 화면에 추가
document.getElementById('container').appendChild(snowflake);
}
// 눈 요소 생성
createSnowflake();
결과 확인하기
위의 코드를 복사하여 HTML, CSS, JavaScript 파일에 붙여넣은 후 웹 브라우저에서 실행해보세요. 그러면 눈이 내리는 애니메이션을 확인할 수 있습니다.
이것은 간단한 눈이 내리는 애니메이션의 예시이며, 추가적인 스타일링이나 기능을 원하는 경우 자유롭게 수정하면 됩니다.
눈이 내리는 애니메이션 예시: 링크
#javascript #애니메이션