当前位置:首页 > Html > 正文内容

html网站背景雪花飘落效果代码

代码学堂2023-08-06 16:36:33Html45

以下是一个使用HTML、CSS和JavaScript实现背景雪花飘落效果的代码示例,其中使用了一张实际的雪花图片作为雪花的图标:


<!DOCTYPE html>  
<html>  
<head>  
    <style>  
        body {  
            margin: 0;  
            overflow: hidden;  
            height: 100vh;  
            background: #000;  
        }  
  
        .snowflake {  
            position: absolute;  
            background: url('snowflake.png') no-repeat;  
            width: 30px;  
            height: 30px;  
            animation: fall 5s linear infinite;  
        }  
  
        @keyframes fall {  
            0% { top: -100px; }  
            100% { top: 9999px; }  
        }  
    </style>  
</head>  
<body>  
    <script>  
        const numSnowflakes = 50;  
        const snowflakes = [];  
  
        function createSnowflake() {  
            const snowflake = document.createElement('div');  
            snowflake.classList.add('snowflake');  
            snowflake.style.left = Math.random() * window.innerWidth + 'px';  
            snowflake.style.top = Math.random() * window.innerHeight + 'px';  
            document.body.appendChild(snowflake);  
            snowflakes.push(snowflake);  
        }  
  
        function moveSnowflakes() {  
            for (let i = 0; i < numSnowflakes; i++) {  
                const snowflake = snowflakes[i];  
                snowflake.style.left = `${parseInt(snowflake.style.left) - 1}px`;  
                if (parseInt(snowflake.style.left) < -30) {  
                    createSnowflake();  
                }  
            }  
            requestAnimationFrame(moveSnowflakes);  
        }  
  
        moveSnowflakes();  
    </script>  
</body>  
</html>


解释代码:


首先,我们定义了一个黑色的背景。通过设置overflow为hidden,我们确保网页的内容不会超出这个背景。

然后,我们定义了一个名为.snowflake的CSS样式类。这个类被应用到了一个div元素上,并设置了绝对定位。我们还设置了背景为一张雪花图片,宽度和高度为30像素。最后,我们定义了一个名为fall的动画,使得这个元素在5秒钟内从上往下移动。


在JavaScript部分,我们首先定义了一个常量numSnowflakes,表示雪花的数量。然后,我们创建了一个空数组snowflakes,用于存储所有的雪花元素。


接着,我们定义了一个名为createSnowflake的函数。这个函数创建了一个新的div元素,并应用了.snowflake样式类。然后,我们随机设置了该元素的水平位置和垂直位置,并将其添加到了网页的主体中。最后,我们将该元素添加到了snowflakes数组中。


接下来,我们定义了一个名为moveSnowflakes的函数。这个函数遍历所有的雪花元素,并将它们的水平位置减去1像素。如果某个雪花的水平位置小于-30像素,那么就会在新的位置上创建一个新的雪花。最后,我们使用requestAnimationFrame函数来不断调用这个函数,从而实现雪花的持续移动。

最后,我们调用了moveSnowflakes函数来启动雪花的移动。


扫描二维码推送至手机访问。

本文由去哪铺网发布。

本文链接:https://dm.qunapu.com/dm/13.html

分享给朋友: