夏のWebデザインにぴったり!CSS+JavaScriptで作る花火エフェクトの実装方法
スポンサーリンク

こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。

夏といえば、花火大会、縁日、夏祭り…。
Webサイトでも、そんな季節感を演出できたら訪れた人の印象もグッと良くなりますよね。
今回は、CSSとJavaScriptを使って夜空に花火が打ち上がるようなアニメーションを実装する方法をご紹介します。

コピペで使えるコードも用意しているので、花火大会の告知サイトやイベントLPにぜひ活用してみてください!

完成イメージ

下記のコードを使えば、夜空にカラフルな火花がシュッと打ち上がってパッと弾けるようなアニメーションが再現できます。

See the Pen
Untitled
by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.

実装コード

HTML

<canvas id="fireworks"></canvas> 

CSS

body {
  margin: 0;
  background: #000;
  overflow: hidden;
}
canvas {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
}

JavaScript

const canvas = document.getElementById("fireworks");
const ctx = canvas.getContext("2d");
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
function random(min, max) {
  return Math.random() * (max - min) + min;
}
let particles = [];
function createFirework() {
  const count = 100;
  const x = random(100, canvas.width - 100);
  const y = random(100, canvas.height / 2);
  const color = `hsl(${Math.floor(random(0, 360))}, 100%, 60%)`;
  for (let i = 0; i < count; i++) {
    particles.push({ x: x, y: y, vx: random(-5, 5), vy: random(-5, 5), alpha: 1, color: color });
  }
}
function updateParticles() {
  ctx.fillStyle = "rgba(0, 0, 0, 0.1)";
  ctx.fillRect(0, 0, canvas.width, canvas.height);
  particles.forEach((p, i) => {
    p.x += p.vx;
    p.y += p.vy;
    p.alpha -= 0.01;
    ctx.beginPath();
    ctx.arc(p.x, p.y, 2, 0, Math.PI * 2);
    ctx.fillStyle = p.color;
    ctx.globalAlpha = p.alpha;
    ctx.fill();
    if (p.alpha <= 0) {
      particles.splice(i, 1);
    }
  });
  ctx.globalAlpha = 1;
}
function animate() {
  requestAnimationFrame(animate);
  updateParticles();
  if (Math.random() < 0.05) {
    createFirework();
  }
}
animate();
スポンサーリンク

このテクニックの活用シーン

  • 夏祭りや花火大会の告知ページ
  • LPやWebバナーでのワンポイント演出
  • スクロール時のアニメーション効果として

注意点

花火エフェクトはパフォーマンスに影響する可能性があるため、場合によってはスマホでは非表示にするなど調整すると良いかもしれません。
JavaScriptは簡易的な実装なので、パーティクルの管理やCanvasのサイズ調整など、必要に応じて最適化してください!

まとめ

CSSとJavaScriptを組み合わせることで、夏らしい演出の一つである「花火エフェクト」も簡単にWeb上で表現できます。
印象的なサイトづくりのアクセントとして、ぜひ活用してみてください!

Web制作やアニメーションのご相談は「satokotadesign」にお気軽にどうぞ!

 

satokotadesignキャンペーン実施中!

浜松市の飲食店限定|ホームページ無料作成サービス
ぶっちゃけ無料相談会!ホームページ制作の悩み話してみませんか?
satokotadesign4周年記念キャンペーン

静岡県浜松市でホームページ制作ならsatokotadesign
静岡県浜松市でホームページ制作ならsatokotadesign

スポンサーリンク
おすすめの記事