0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SVGアニメーションの例

Last updated at Posted at 2025-04-28

元の投稿を読む: CSSとJavaScriptでSVGをアニメーション化する方法

SVGタイポグラフィアニメーション

See the Pen CSS Scroll Color Animation by Ion Emil Negoita (@inegoita) on CodePen.

SVG画像に命を吹き込みましょう。このチュートリアルでは、CSSとJavaScriptを使ってSVG画像をアニメーション化する方法を紹介します。CSSアニメーションの基本、SVG要素のアニメーション化、そしてスクロールやクリックによるアニメーションのトリガーについても解説します。上のデモで実際の動作を確認してください。スクロール、クリック、または再生ボタンを押してループ再生することでアニメーションをトリガーできます。

アニメーション用のSVG画像を作成する

SVGアニメーションを始めるには、SVG画像が必要です。 InkscapeAdobe Illustrator、またはPhotoshopの最新バージョンを使って作成できます。以下のオプションがあります。

MockoFunの無料オンラインツール (テキストインシェイプジェネレーター)を使用します。クールなタイポグラフィSVGデザインを簡単に作成できます。

MockoFunの無料オンラインツールtext in shape generator

テキストを図形に
{% cta https://www.coding-dude.com/wp/wp-content/uploads/2025/04/text-in-shape-3.svg %} SVGバージョンをダウンロード {% endcta %}


{% cta https://www.coding-dude.com/wp/wp-content/uploads/2025/04/text-in-shape-2.svg %} SVGバージョンをダウンロード {% endcta %}


{% cta https://www.coding-dude.com/wp/wp-content/uploads/2025/04/text-in-shape-2.svg %} SVGバージョンをダウンロード {% endcta %}

SVG画像が完成したので、アニメーション化に進みましょう!

CSS で SVG をアニメーション化する

CSS で SVG をアニメーション化するには、HTML ページで SVG をインライン SVG として使用する必要があります。つまり、テキストエディターから SVG 定義をコピーし、HTML に貼り付けます。

SVG を開くと、グループ (<g/> タグ) とパス (<path/> タグ) が表示されます。ここではパスに焦点を当てます。パスがアニメーション化の対象となるためです。

SVG の CSS は HTML と似ていますが、プロパティが異なります。SVG の CSS の入門ガイドをご覧ください。

SVG のカラーアニメーション

SVG 内の 2 つの <path/> 要素 (背景図形と図形内のテキスト) の色をアニメーション化します。 CSS の hsl() 値を使用すると、色の操作が簡単になります。

色を変更するには、彩度と明度はそのままに、色相のみを変更します。これにより、調和のとれた配色が作成されます。

コードは次のとおりです。

const SATURATION = '100%';
const LIGHTNESS = '50%';

currentHue = (newHue % 360 + 360) % 360;
const shapeHue = (180 + currentHue)%360;
const dynamicColor = `hsl(${currentHue}, ${SATURATION}, ${LIGHTNESS})`;
const shapeColor = `hsl(${shapeHue}, ${SATURATION}, ${LIGHTNESS})`

svgTexts.forEach(el => {
el.style.fill = dynamicColor;
});
svgShapes.forEach(el => {
el.style.fill = shapeColor;
});

アニメーションのトリガー

アニメーションをトリガーするには、3つの方法を使用します。

  1. 再生/一時停止ボタン: 色のサイクルを開始または一時停止します。
  2. マウスホールド: マウスボタンを押している間、色が変わります。
  3. マウスホイールスクロール: スクロール時に色が変わります。

詳しく見ていきましょう。

  • 再生/一時停止ボタン: タイマーを使用して、100ミリ秒ごとに色の変化をトリガーします。
document.getElementById("playPauseCheckbox").addEventListener('change', event => {
// ...
});
  • マウスホールド: マウスボタンを押している間、setInterval() を使用して色を変更します。
function handleMouseDown(event){
// ...
}
function handleMouseUp(event){
// ...
}
  • マウスホイールスクロール: スクロール時に色を変更します。下にスクロールするたびに色相を15度ずつ増加し、上にスクロールするたびに色相を減少させます。
window.addEventListener('wheel', handleWheel, { passive: true });
// ...
function handleWheel(event) {
// ...
}

これで完了です!これで、シェイプデザインでSVGテキストを作成し、CSSとJSを使ってアニメーションさせる方法が分かりました。

まとめ

これで、シェイプデザインでSVGテキストを作成し、CSSとJSを使ってアニメーションさせる方法が分かりました。これは、ウェブサイトに簡単に組み込める、とても便利なウェブデザインのテクニックです。ご質問があれば、コメント欄にご記入ください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?