본문 바로가기

유용한정보/핫한정보

눈내리는 효과 html 내린후 아래에 쌓인다

반응형

index.html
0.00MB

 

 

 

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>눈 내리는 효과</title>
    <style>
        body {
            margin: 0;
            overflow: hidden;
            background-color: #1e1e1e;
            position: relative;
        }
        .snowflake {
            position: absolute;
            top: -10px;
            color: white;
            font-size: 1em;
            pointer-events: none;
            animation: fall linear forwards;
            opacity: 0.8;
        }
        @keyframes fall {
            0% {
                transform: translateY(0);
            }
            80% {
                transform: translateY(100vh);
            }
            100% {
                transform: translateY(calc(100vh - 50px)); /* 아래쪽에 쌓이도록 */
            }
        }
        .snow-pile {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 50px; /* 눈 쌓이는 높이 */
            background: rgba(255, 255, 255, 0.7);
            pointer-events: none;
        }
    </style>
</head>
<body>
    <div class="snow-pile"></div>
    <script>
        const createSnowflake = () => {
            const snowflake = document.createElement('div');
            snowflake.className = 'snowflake';
            snowflake.textContent = '❄'; // 눈송이 문자
            snowflake.style.left = Math.random() * 100 + 'vw'; // 랜덤 위치
            snowflake.style.fontSize = Math.random() * 1.5 + 0.5 + 'em'; // 랜덤 크기
            snowflake.style.animationDuration = Math.random() * 3 + 2 + 's'; // 랜덤 애니메이션 시간
            
            document.body.appendChild(snowflake);
            
            // 눈송이가 떨어진 후 제거
            setTimeout(() => {
                snowflake.remove();
            }, 5000); // 5초 후 제거
        };

        setInterval(createSnowflake, 300); // 0.3초마다 눈송이 생성
    </script>
</body>
</html>

 

 

눈송이 애니메이션: 눈송이가 떨어진 후 translateY(calc(100vh - 50px))를 사용하여 화면의 하단에 쌓이도록 설정했습니다.
눈 쌓이는 효과: snow-pile 클래스를 사용하여 화면 하단에 눈이 쌓이는 영역을 만들었습니다. 이 영역은 반투명한 흰색으로 설정되어 눈이 쌓인 것처럼 보입니다.
이 코드를 HTML 파일로 저장하고 웹 브라우저에서 열면 눈이 내리고 아래쪽에 쌓이는 효과를 확인할 수 있습니다.

728x90
반응형