html满屏飘雪花代码
以下是一个使用HTML、CSS和JavaScript实现的满屏飘雪花效果的代码。在这个示例中,我们使用了HTML创建页面结构,CSS用于样式设计和动画效果,而JavaScript则用于控制雪花的运动和动画效果。
HTML代码:
<!DOCTYPE html> <html> <head> <title>满屏飘雪花</title> <link rel="stylesheet" type="text/css" href="styles.css"> <script src="snow.js"></script> </head> <body> <div class="snow"></div> </body> </html>
CSS代码(styles.css):
body { margin: 0; overflow: hidden; height: 100vh; background: #FFC0CB; } .snow { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; object-fit: cover; }
JavaScript代码(snow.js):
function createSnowflake(x, y) { var snowflake = document.createElement('img'); snowflake.src = 'snowflake.png'; snowflake.style.position = 'absolute'; snowflake.style.left = x + 'px'; snowflake.style.top = y + 'px'; document.body.appendChild(snowflake); setTimeout(function() { snowflake.remove(); }, 2000); } function createSnow() { var width = document.body.clientWidth; var height = document.body.clientHeight; var maxSnowflakes = 50; for (var i = 0; i < maxSnowflakes; i++) { var x = Math.random() * width; var y = Math.random() * height; var size = Math.random() * 5 + 2; createSnowflake(x, y, size); } } setInterval(createSnow, 1000);
<a href="https://dm.qunapu.com/daima/xuehua/index.html">点击这里查看效果</a>
代码解释:
HTML部分定义了一个页面,包含一个<div>元素作为雪花容器,并引入了雪花图片(snowflake.png)的路径。同时,还引入了JavaScript文件(snow.js)的路径。这个雪花图片应该是一个真正的雪花图。
CSS部分定义了页面的样式。首先,我们设置了页面的背景颜色为粉红色(#FFC0CB)。然后,我们定义了雪花容器的样式。雪花容器使用绝对定位,居中显示,并占据整个页面。注意,这里没有设置雪花的样式,因为我们将在JavaScript中动态添加图片元素来表示雪花。
JavaScript部分使用函数createSnowflake创建单个雪花。该函数接受三个参数:雪花的x坐标、y坐标和大小。在函数内部,我们创建一个<img>元素,并将其src设置为雪花图片的路径。然后,我们设置该元素的绝对位置为给定的坐标,并将其添加到页面中。我们还使用setTimeout函数在2秒后移除该元素,以实现雪花的消失效果。
另一个函数createSnow用于创建多个雪花。该函数首先获取页面的宽度和高度,并根据最大雪花数量计算出循环次数。在循环中,我们随机生成每个雪花的x坐标、y坐标和大小,并调用createSnowflake函数创建雪花。最后,我们使用setInterval函数每隔1秒调用一次createSnow函数,以实现连续创建雪花的效果。
通过调用createSnowflake函数创建的每个雪花都是一个单独的图片元素,它们会以随机位置和大小出现在页面上,并以动画形式向下飘落。由于每个雪花都有自己的位置和运动轨迹,因此它们会以自然的方式散开,形成满屏飘雪花的视觉效果。
效果截图: