本文实现雪花飘落效果的 JavaScript 网页设计案例,代码实现如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>雪花飘落效果</title><style>body {margin: 0;padding: 0;overflow: hidden;background-color: #000;}.snowflake {position: absolute;width: 10px;height: 10px;background: white;border-radius: 50%;pointer-events: none;}</style>
</head><body><script>// 定义雪花数量const NUM_SNOWFLAKES = 100;// 获取页面宽度和高度const windowWidth = window.innerWidth;const windowHeight = window.innerHeight;// 创建雪花元素并添加到页面for (let i = 0; i < NUM_SNOWFLAKES; i++) {const snowflake = document.createElement('div');snowflake.classList.add('snowflake');// 设置随机的初始位置snowflake.style.left = Math.random() * windowWidth + 'px';snowflake.style.top = Math.random() * windowHeight + 'px';// 设置随机的大小const size = Math.random() * 3 + 2;snowflake.style.width = size + 'px';snowflake.style.height = size + 'px';// 设置随机的透明度snowflake.style.opacity = Math.random();// 设置随机的下落速度snowflake.speed = Math.random() * 3 + 1;document.body.appendChild(snowflake);}// 定义雪花飘落动画函数function animateSnowflakes() {const snowflakes = document.querySelectorAll('.snowflake');snowflakes.forEach(snowflake => {let top = parseInt(snowflake.style.top);top += snowflake.speed;if (top > windowHeight) {// 当雪花落到页面底部时,重新放置到页面顶部top = -10;snowflake.style.left = Math.random() * windowWidth + 'px';}snowflake.style.top = top + 'px';});// 实现动画效果requestAnimationFrame(animateSnowflakes);}// 启动动画animateSnowflakes();</script>
</body></html>
原理:animateSnowflakes
函数用于更新雪花的位置,当雪花落到页面底部时,将其重新放置到页面顶部。使用 requestAnimationFrame
函数实现平滑的动画效果。
实现效果:
背景可以替换。