前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >❤️创意网页:绚丽粒子雨动画

❤️创意网页:绚丽粒子雨动画

作者头像
命运之光
发布2024-03-20 12:50:46
740
发布2024-03-20 12:50:46
举报
简介

欢迎来到本篇技术博客!今天,我们将一起学习如何使用 HTML、CSS 和 JavaScript 来创造一个更炫酷的动态网页示例。我们将在网页中添加许多随机颜色的粒子,让它们以不同的速度在画布上飘动,形成一个美妙的粒子效果。让我们开始吧!

动态图展示


静态图展示

HTML 结构

我们的网页将由一个 canvas 元素组成,用于绘制粒子。我们需要在 <head> 标签中添加标题和 CSS 样式,然后在 <body> 标签中添加 canvas 元素和 JavaScript 代码。

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>更炫酷的动态网页示例</title>
    <!-- CSS 样式在这里添加 -->
</head>
<body>
    <!-- 绘制粒子的 Canvas 元素 -->
    <canvas id="myCanvas"></canvas>
    <!-- JavaScript 代码在这里添加 -->
</body>
</html>

CSS 样式

为了实现更好的视觉效果,我们将设置网页背景色为黑色,去掉默认的页面边距和滚动条,然后将 canvas 元素设置为全屏显示。

代码语言:javascript
复制
/* 网页样式 */
body {
    margin: 0;
    overflow: hidden;
    background-color: #000;
}

/* Canvas 元素样式 */
canvas {
    display: block;
}

JavaScript 代码

现在,我们将使用 JavaScript 创建一个 Particle 类,用于表示粒子对象。每个粒子都有随机的位置、大小、颜色和竖直速度。我们还将创建一个粒子数组,并在画布上动态绘制这些粒子,形成粒子效果。

代码语言:javascript
复制
// 获取canvas元素和绘图上下文
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

// 设置canvas的宽度和高度
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

// 粒子对象
class Particle {
    constructor(x, y) {
        this.x = x;
        this.y = y;
        this.size = Math.random() * 3 + 1; // 随机大小
        this.color = `hsl(${Math.random() * 360}, 100%, 50%)`; // 随机颜色
        this.velocityY = Math.random() * 3 + 1; // 随机竖直速度
    }

    // 更新粒子的位置
    update() {
        this.y += this.velocityY;

        // 当粒子到达画布底部时,重新放置到画布顶部
        if (this.y > canvas.height) {
            this.y = 0;
        }
    }

    // 绘制粒子
    draw() {
        ctx.beginPath();
        ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
        ctx.fillStyle = this.color;
        ctx.fill();
    }
}

// 创建粒子数组
const particles = [];
const numParticles = 100;

// 初始化粒子
for (let i = 0; i < numParticles; i++) {
    const x = Math.random() * canvas.width;
    const y = Math.random() * canvas.height;
    particles.push(new Particle(x, y));
}

// 动画循环函数
function animate() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);

    for (let i = 0; i < particles.length; i++) {
        particles[i].update();
        particles[i].draw();
    }

    requestAnimationFrame(animate);
}

// 启动动画
animate();

JavaScript 逻辑解释

  1. 我们通过 document.getElementById 方法获取 canvas 元素,并创建一个绘图上下文 ctx,用于在画布上绘制粒子。
  2. Particle 类表示每个粒子对象。在构造函数中,我们为每个粒子设置随机的位置、大小、颜色和竖直速度。
  3. update 方法用于更新粒子的位置。我们让每个粒子沿竖直方向运动,并在到达画布底部时将其重新放置到画布顶部,实现循环运动。
  4. draw 方法用于绘制粒子,我们使用 ctx.arc 方法绘制圆形粒子,并设置颜色为随机的彩虹色。
  5. 我们创建了一个粒子数组 particles,并在初始化时生成了多个随机位置的粒子对象。
  6. animate 函数用于实现动画循环。在每一帧中,我们清空画布、更新每个粒子的位置,并绘制粒子,然后使用 requestAnimationFrame 方法递归调用 animate 函数,实现连续的动画效果。

运行效果

将上述代码保存为一个 HTML 文件,并在浏览器中打开它。您将会看到一个更炫酷的动态网页示例,画布上漂浮着许多彩色的粒子,形成一个华丽的粒子效果。在不同的屏幕大小下,粒子会随机分布,使效果更加丰富多彩。


完整代码

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title>好看的粒子雨动画</title>
    <style>
        body {
            margin: 0;
            overflow: hidden;
            background-color: #000;
        }
        canvas {
            display: block;
        }
    </style>
</head>
<body>
    <canvas id="myCanvas"></canvas>
    <script>
        // 获取canvas元素和绘图上下文
        const canvas = document.getElementById('myCanvas');
        const ctx = canvas.getContext('2d');

        // 设置canvas的宽度和高度
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;

        // 粒子对象
        class Particle {
            constructor(x, y) {
                this.x = x;
                this.y = y;
                this.size = Math.random() * 3 + 1; // 随机大小
                this.color = `hsl(${Math.random() * 360}, 100%, 50%)`; // 随机颜色
                this.velocityY = Math.random() * 3 + 1; // 随机竖直速度
            }

            // 更新粒子的位置
            update() {
                this.y += this.velocityY;

                // 当粒子到达画布底部时,重新放置到画布顶部
                if (this.y > canvas.height) {
                    this.y = 0;
                }
            }

            // 绘制粒子
            draw() {
                ctx.beginPath();
                ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
                ctx.fillStyle = this.color;
                ctx.fill();
            }
        }

        // 创建粒子数组
        const particles = [];
        const numParticles = 100;

        // 初始化粒子
        for (let i = 0; i < numParticles; i++) {
            const x = Math.random() * canvas.width;
            const y = Math.random() * canvas.height;
            particles.push(new Particle(x, y));
        }

        // 动画循环函数
        function animate() {
            ctx.clearRect(0, 0, canvas.width, canvas.height);

            for (let i = 0; i < particles.length; i++) {
                particles[i].update();
                particles[i].draw();
            }

            requestAnimationFrame(animate);
        }

        // 启动动画
        animate();
    </script>
</body>
</html>

代码的使用方法(超简单什么都不用下载)

🍓1.打开记事本
🍓2.将上面的源代码复制粘贴到记事本里面将文件另存为HTML文件点击保存即可
🍓3.打开html文件(大功告成(●'◡'●))

总结

通过本篇技术博客,我们学习了如何使用 HTML、CSS 和 JavaScript 创造一个更炫酷的动态网页示例。我们实现了彩色粒子效果,并让粒子在画布上飘动,形成一个绚丽多彩的效果。希望您享受了本次创作过程,祝您编程愉快!

本章的内容就到这里了,觉得对你有帮助的话就支持一下博主把~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 动态图展示
  • 静态图展示
  • HTML 结构
  • CSS 样式
  • JavaScript 代码
  • JavaScript 逻辑解释
  • 运行效果
  • 完整代码
  • 代码的使用方法(超简单什么都不用下载)
    • 🍓1.打开记事本
      • 🍓2.将上面的源代码复制粘贴到记事本里面将文件另存为HTML文件点击保存即可
        • 🍓3.打开html文件(大功告成(●'◡'●))
        • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档