グラフィックデザインの記事とチュートリアル。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
元の投稿を読む: CSSとJavaScriptでSVGをアニメーション化する方法
SVG画像に命を吹き込みましょう。このチュートリアルでは、CSSとJavaScriptを使ってSVG画像をアニメーション化する方法を紹介します。CSSアニメーションの基本、SVG要素のアニメーション化、そしてスクロールやクリックによるアニメーションのトリガーについても解説します。上のデモで実際の動作を確認してください。スクロール、クリック、または再生ボタンを押してループ再生することでアニメーションをトリガーできます。
SVGアニメーションを始めるには、SVG画像が必要です。 Inkscape、Adobe Illustrator、またはPhotoshopの最新バージョンを使って作成できます。以下のオプションがあります。
MockoFunの無料オンラインツールtext in shape generator (テキストインシェイプジェネレーター)を使用します。クールなタイポグラフィSVGデザインを簡単に作成できます。
SVG画像が完成したので、アニメーション化に進みましょう!
CSS で SVG をアニメーション化するには、HTML ページで SVG をインライン SVG として使用する必要があります。つまり、テキストエディターから SVG 定義をコピーし、HTML に貼り付けます。
SVG を開くと、グループ (<g/>
タグ) とパス (<path/>
タグ) が表示されます。ここではパスに焦点を当てます。パスがアニメーション化の対象となるためです。
SVG の CSS は HTML と似ていますが、プロパティが異なります。SVG の CSS の入門ガイドをご覧ください。
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つの方法を使用します。
詳しく見ていきましょう。
document.getElementById("playPauseCheckbox").addEventListener('change', event => {
// ...
});
setInterval()
を使用して色を変更します。function handleMouseDown(event){
// ...
}
function handleMouseUp(event){
// ...
}
window.addEventListener('wheel', handleWheel, { passive: true });
// ...
function handleWheel(event) {
// ...
}
これで完了です!これで、シェイプデザインでSVGテキストを作成し、CSSとJSを使ってアニメーションさせる方法が分かりました。
これで、シェイプデザインでSVGテキストを作成し、CSSとJSを使ってアニメーションさせる方法が分かりました。これは、ウェブサイトに簡単に組み込める、とても便利なウェブデザインのテクニックです。ご質問があれば、コメント欄にご記入ください。