当前位置: 首页 > article >正文

javascript实现雪花飘落效果

本文实现雪花飘落效果的 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 函数实现平滑的动画效果。

实现效果:
在这里插入图片描述

背景可以替换。


http://www.kler.cn/a/569508.html

相关文章:

  • 基于SpringBoot的校园体育场馆(设施)使用管理网站设计与实现现(源码+SQL脚本+LW+部署讲解等)
  • driver中为什么要使用非阻塞赋值
  • 使用Vant-ui封装form移动端组件
  • 【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第2章OpenHarmony v3.2-Beta4版本测试
  • DeepSeek实操教程(清华、北大)
  • 不同规模企业如何精准选择AI工具: DeepSeek、Grok 和 ChatGPT 三款主流 AI 工具深度剖析与对比
  • c# winform程序 vs2022 打包生成安装包
  • 【AGI】DeepSeek开源周:The whale is making waves!
  • 10分钟掌握!如何在Linux系统中实现无密码使用私钥SSH远程连接
  • 脑机接口SSVEP经典算法 ITCCA个体模板典型相关分析 matlab实战
  • 开源项目Wren AI 文本到SQL解决方案详解
  • 浙江大学《程序设计入门-c语言》第一周笔记
  • 游戏引擎学习第126天
  • 7. 从网络获取数据
  • 深入理解Reactor Flux的生成方法
  • 版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点
  • JAVA SE 包装类和泛型
  • goLand导入git项目并打包发布linux
  • 如何防止Python网络爬虫爬取网站内容
  • leetcode 46. 全排列 中等