RevealFillアニメーションを実装|SVGアニメーションを順番に適用する方法


はじめに

SVGアニメーションは、Webデザインに動きを加えるための強力な手法です。今回は、SVGのパスを順番に塗りつぶす RevealFill アニメーションを実装する方法を紹介します。

このアニメーションでは、 Intersection Observer API を使用し、SVGが画面内に入ったときに順番に塗りが適用されるようにします。


RevealFillアニメーションとは?

RevealFillは、SVGの各パーツが順番に塗りつぶされるアニメーションです。この手法を使うことで、ロゴやアイコンをより魅力的に表示できます。

今回のアニメーションは、 SVG Artista を使って作成しました。


See the Pen Untitled by masakazuimai (@masakazuimai) on CodePen.


実装手順

1. SVGの準備

SVG Artista で作成したアニメーション付きの SVG を準備します。SVG には各パーツごとにクラスが付与され、fill のトランジションが適用されます。

<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1448 1447" preserveAspectRatio="xMidYMid meet">
  <g>
    <path class="svg-elem-1" d="M6995 14464 c-169 -7..."></path>
    <path class="svg-elem-2" d="M6910 12699 c-964 -59..."></path>
    <!-- 他のパス -->
  </g>
</svg>

このSVGの fill プロパティをアニメーションで適用するように設定します。

2. CSSの設定

CSSを使用して、SVGが .active クラスを持ったときに塗りが適用されるようにします。

svg .svg-elem-1, svg .svg-elem-2 {
  fill: transparent;
  transition: fill 0.7s cubic-bezier(0.47, 0, 0.745, 0.715) 0.8s;
}

svg.active .svg-elem-1 {
  fill: #000;
}

svg.active .svg-elem-2 {
  fill: #000;
}

3. JavaScriptで画面内に入ったら .active を追加

JavaScript で Intersection Observer API を使用し、SVGが画面内に入ったときに .active クラスを追加します。

document.addEventListener("DOMContentLoaded", function () {
  const svgElement = document.querySelector("svg");

  const observer = new IntersectionObserver((entries) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        svgElement.classList.add("active");
        observer.unobserve(svgElement); // 監視を停止
      }
    });
  }, { threshold: 0.2 });

  if (svgElement) {
    observer.observe(svgElement);
  }
});

4. SVGを中央に配置し、幅を50%に設定

画面中央に配置し、幅を50%にするCSSを追加します。

svg {
  width: 50%;
  height: auto;
  display: block;
  margin: 0 auto;
}

まとめ

  • SVG Artista でアニメーション付きの SVG を作成
  • CSSfill のトランジションを設定
  • JavaScriptIntersection Observer を使って .active クラスを追加
  • CSSで中央配置 & 幅50% に調整

この方法を使えば、シンプルで視覚的に魅力的なSVGアニメーションを実装できます!

ぜひSVGアニメーションを試してみてください! 🚀

✪ 画像素材がないものはランダムで表示されるようになっています。フリー素材などでご用意ください。

おすすめChromeプラグイン一覧

プラグイン名特徴
GoFullPageウェブページ全体のスクリーンショットを簡単に取得できるブラウザ拡張機能です。
ColorZilla色を抽出するための拡張機能です。
WhatFontウェブページ上のフォントの情報を簡単に確認できるブラウザ拡張機能です。
PerfectPixelデザイナーが作成したデザインと実際にコーディングされたウェブページがどの程度一致しているかを確認・調整するためのブラウザ拡張機能です。

模写の手順

ステップ内容
ステップ 1構図を手書きか全画面スクショ(Go full page等)した後、ペイントツールで四角で囲い、大まかなclass,命名規則をあらかじめ決める。
ステップ 2HTMLの基本構造を作成する
ステップ 3CSSでレイアウトを模写する
ステップ 4 中級〜JavaScriptを追加して動きを再現する
ステップ 5最終調整を行い、検証ツールやPerfectPixel(chromeプラグイン)などで完成を確認する。