用HTML写一个好看的3D烟花特效

<p>可以使用HTML的<code>canvas</code>元素和JavaScript来创建3D烟花特效。下面是一个简单的例子:</p>
<p>```html
<!DOCTYPE html></p>
<html>
<head>
  <title>3D烟花特效</title>
  <style>
    canvas {
      background-color: black;
      width: 100%;
      height: 100%;
    }
  </style>
</head>
<body>
  <canvas id="fireworks"></canvas>
  <script>
    // 获取canvas元素
    const canvas = document.getElementById('fireworks');
    // 获取canvas的绘图上下文
    const ctx = canvas.getContext('2d');

<pre><code>// 定义烟花类
class Firework {
  constructor(x, y, color) {
    this.x = x;
    this.y = y;
    this.color = color;
    this.particles = [];
  }

  // 绘制烟花
  draw() {
    // 遍历所有烟花粒子并绘制
    for (const particle of this.particles) {
      ctx.beginPath();
      ctx.arc(particle.x, particle.y, particle.radius, 0, Math.PI * 2);
      ctx.fillStyle = this.color;
      ctx.fill();
    }
  }

  // 更新烟花状态
  update() {
    // 遍历所有烟花粒子并更新其位置
    for (const particle of this.particles) {
      particle.x += particle.vx;
      particle.y += particle.vy;
      particle.vy += 0.1; // 重力
      particle.radius *= 0.97; // 缩小粒子半径
    }
  }
}

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

  // 遍历所有烟花并更新和绘制
  for (const firework of fireworks) {
    firework.update();
    firework.draw();
  }

  // 调用动画循环函数
  requestAnimationFrame(animate);
}

// 定义烟花数组
const fireworks = [];

// 点击画布时生成一个新的烟花
canvas
</code></pre>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值