GSAP によるアニメーション化されたスケーラブルなベクター グラフィックス
公開: 2022-12-06Scalable Vector Graphics (SVG) をアニメーション化する方法についてのチュートリアルが必要だとします。
SVG は、開発者やデザイナーが 2 次元のベクター グラフィックスを作成するために使用する標準です。 この形式はリッチなグラフィックスを生成できますが、ファイルは他の一般的な画像形式よりもサイズが小さい傾向があるため、Web での使用に最適です。
SVG のアニメーション化に関しては、いくつかの方法があります。 GreenSock の GSAP はおそらく最も人気のあるオプションですが、これだけではありません。 このチュートリアルでは、GSAP のツールを使用して SVG をアニメーション化する方法と、JavaScript を使用してアニメーションをトリガーする方法を見ていきます。
これは、インライン (HTML の SVG コード) およびパーツの CSS ベースのアニメーションによって実現されます。 母校のウーフーは、ここで使用していた広告グラフィックを一新したいと考えていました。 それをさらに使用するのに良い時期のように思えました。 それがどのように行われたかは、以下のビデオに示されています。 CSS は、アニメーションの遅延プロパティをネイティブにランダム化することでメリットが得られます。 それぞれの間隔で文字が少しだけ調整されるのを見るのはクールでしょう. このアニメが3秒くらいで終わってくれたらよかったのに。
translateY(150px) 効果により、恐竜がはるか下に移動し、何も表示されなくなります。 この広告では、最初は恐竜が隠れていますが、フェードイン/アウトのアニメーションがフェードインすると、Fast という文字が表示されます。 従来のパディング ボックス手法を使用することで、インライン SVG を使用しながらアスペクト比を維持するインライン SVG スケールを作成できます。 これは広告であるため、<a href=> を使用できますが、ブロック プロパティを必ず display: block に設定し、<div> を使用しないでください。
アニメーション オブジェクトを作成する行為。 エクスポータを使用してSVG アニメーションを作成できます。 レンダリング モードがアニメーションに設定されている場合、フレーム (F12 または Shift-F12) またはレンダリング内のすべてのフレーム (Shift-F12 または F12) であるかに関係なく、レンダリングのフレーム全体が 1 つのファイルに保存されます。
アニメーション要素を使用して SVG グラフィックを作成できます。 SMIL の最初のアニメーション要素は次のように識別されました: *animate%27/animate%27 – これにより、スカラー属性とプロパティを経時的にアニメーション化できます。
ほとんどの場合、*img タグの使用がSVG アニメーションの失敗の主な原因です。 アニメーションが始まると、SVG が Web サイトに表示される場合がありますが、開始されません。 これを解決する最も簡単な方法は、すべての img> タグを object> タグに置き換えることです。
SVG では、アニメーション効果を作成するために、時間の経過とともにベクター グラフィックスを変更できます。 SVG コンテンツをアニメーション化する方法はいくつかあります。 この作品では、SVG のアニメーション要素 [svg-animated] を使用します。 SVG ドキュメント フラグメントに含まれるデータは、時間に基づいてドキュメントの要素を変更することで記述できます。
アニメーション SVG を作成するにはどうすればよいですか?
アニメーション SVGを作成する方法はいくつかあります。 1 つの方法は、Adobe Illustrator などのベクター描画プログラムを使用してアートワークを作成してから、After Effects などのツールを使用してアニメーションを追加することです。 もう 1 つの方法は、Snap.svg などのツールを使用して、アニメーションをコードで直接作成することです。
このチュートリアルでは、sva のコンテキストで CSS を使用して最適化およびアニメーション化する基本的な手順について説明します。 この目的で利用できる唯一の Bootstrap バージョンは Bootstrap 4.1.3 です。 ブートストラップする場合は、SVG にクラス img-fluid が含まれていることを確認して、モバイルで適切にスケーリングされるようにします。 SVG にクラスを追加することで、イメージをカスタマイズできます。 アニメーションで効果を実行するように CSS に依頼するときは、その名前とキーフレームを指定する必要があります。 四角形のフェードインが終了したら、テキスト アニメーションを同時に実行する必要があります。 この変更により、このステップの 3 次ベジエはより高速な動作状態になりました。 このアニメーションは、40% の確率で中央に表示されます。 ダッシュがパス全体をカバーするように、stroke-dashoffset をリセットします。
Svg をアニメーション化する方法
アニメーション SVG の作成は、適切なツールのおかげで、シンプルで楽しいプロセスになります。 アニメーション化するフレームを選択すると、SVG を使用してエクスポートできます。 そのフレーム内のノードを選択してアニメートすることもできます。 ライブ プレビューを使用すると、満足するまでアニメーションを微調整できます。
HTML ファイルをアニメーション化する前に、まずキーフレームと名前を宣言する必要があります。 プロパティを要素に割り当てて維持します。 すべての要素を編集したら、最終ファイルを保存します。
Svg Css のアニメーション化
SVG ファイルのアニメーション化は、CSS を使用して行うことができます。 アニメーションの作成に使用できるさまざまなプロパティが多数あります。 最も一般的なプロパティは、animation、animation-delay、animation-duration、animation-iteration-count、animation-name、animation-play-state、animation-timing-function です。
XML ベースのベクター画像形式であるスケーラブル ベクター グラフィックス (SVG) は、2 次元グラフィックスでのインタラクティブ性とアニメーションを可能にします。 この記事では、sva ファイルをエクスポートして最適化し、埋め込む方法について説明し、それぞれが作成するスタイルやアニメーションにどのように影響するかを説明します。 CSS は、スタイル設定とアニメーション化に使用されます。 パスの多いファイルを扱う場合、小数点以下の桁数を 4 から 1 に変更すると、ファイル サイズを 50% 削減できます。 最適化によってファイルが壊れてしまう場合は、最適化をプレビューできるので、これは大きなプラスです。 sva を最適化するための Peter Collingridge のオンライン ツールは、利用可能ないくつかのツールの 1 つです。 SVG 1.1 は CSS を必要としなかったため、SVG ノードに適用される CSS スタイル属性はプレゼンテーション属性と呼ばれていました。
プレゼンテーション属性の設定は、要素に CSS プロパティを設定することに似ています。 これらはスタイルカスケードで重要な役割を果たしますが、これについてはすぐに詳しく説明できるようになります。 CSS プロパティを使用して、 SVG 要素のスタイルを定義することもできます。 sva ノードでプレゼンテーション属性を使用することは、それらを使用して CSS プロパティを定義することと同じです。 すべてのプレゼンテーション属性は低レベルの権威スタイル シートであるため、他のスタイル定義で指定できます。 上のスタイルなど、図の下にあるスタイルは、上のスタイルよりも優先して使用する必要があります。 :hover、:active、:focus などの CSS2 の動的疑似クラスは、ほとんどの SVG のスタイル設定に使用されます。
HTML 要素が行うのと同じ方法で変換および変換元を変換するSVG 要素の機能は、CSS 要素が行うのと同じ方法で変換および変換元を変換する HTML 要素の機能に類似しています。 SVG はボックス モデルによって管理されていないため、HTML 要素とは異なり、ボーダー、パディング、またはマージンがありません。 音節の仕様で述べられているように、適切なプロパティ名 (通常は小文字とハイフン) は CSS の仕様で定義されています。 transform-origin 値がパーセンテージで指定されている場合、要素の境界ボックスに関連して設定されます。 現在、Firefox は変換の原点をパーセンテージ値で設定することをサポートしていません。 長期的に変換が適切に動作するようにするには、絶対値を使用する必要があります。 ドキュメントに SVG を挿入するには 6 つの方法があり、それぞれに長所と短所があります。
埋め込みメソッドを使用して SVG を埋め込んだ後、特定の CSS スタイル、アニメーション、およびインタラクションが機能するかどうかを判断できます。 この手法の詳細については、Jake Archibald の優れた記事を参照してください。 HTML 標準ではフォーマット方法が指定されていないにもかかわらず、依然として広くサポートされています。 >svg> タグは、コード アイランドと呼ばれるインライン ドキュメントに SVG を組み込むためにも使用できます。 SVG はインライン SVGと CSS を使用してスタイル設定およびアニメーション化できるため、操作が簡単です。 SVG を埋め込む場合は、すべてのブラウザーで埋め込み可能であることを確認してください。 埋め込み技術によっては、SVG クロスブラウザーと互換性を持たせるために、ハックや修正を追加する必要がある場合があります。
詳細を確認するには、Codrops に関する私の記事をお読みください。 画像が背景として SVG に埋め込まれている場合、新しいハックを追加することは不可能です。 また、要素の幅が 100% であることを確認する必要があります。 CSS では、300 x 150 ピクセルが置換要素のデフォルト サイズです。 A List Apart で Thierry Koblentz によって開発された Adobe Photoshop ハックだけが、iframe をレスポンシブにできます。 CSS メディア クエリも SVG に送信できます。 メディア クエリを使用すると、ビューポート サイズ全体で SVG のスタイルを変更できます。 SVG がページのビューポートに応答するとき、それはページのビューポートではなく、独自のビューポートです。 これは、実際の要素クエリと同じ概念です。
Css を使用した SVG アニメーション
CSS を使用して、この汎用性の高い画像形式でアニメーション画像を作成できます。 その結果、より複雑な効果をより簡単に表示して理解することができます。 SVG に単純なクラスを追加することで、イメージの形状を自由に変更できます。 これを使用して、よりダイナミックなグラフィックを作成できます。
Svg パスをアニメーション化する方法
SVG パスをアニメーション化する方法はいくつかあります。 1. SVG 変換属性を使用する 2. CSS3 アニメーションを使用する 3. SMIL を使用する 4. JavaScript を使用する 変換属性は、SVG パスをアニメーション化する最も一般的な方法です。 これにより、パスの座標を変換してパスをアニメーション化できます。 CSS3 を使用してパスをアニメーション化するには、animation-timing-function プロパティを linear または alternate に設定する必要があります。 次に、animation-duration プロパティを、アニメーションを実行する時間の長さに設定できます。 SMIL は、パスをアニメートするもう 1 つの方法です。 SMIL は Synchronized Multimedia Integration Language の略です。 これにより、要素を使用してパスをアニメーション化できます。 パスをアニメーション化する最後の方法は、JavaScript を使用することです。 これを行うには、パスの座標を更新する関数を作成する必要があります。 次に、この関数を呼び出してアニメーションを実行できます。
SVG パスを使用すると、何でも簡単に作成できます。 これは、色付きのピクセルではなく、作成された画面上で解釈できる数学関数で構成されるベクター画像形式です。 この記事では、getPointAtLength() コンテキストで関数 getPointAtLength() を使用して、クリエイティブな目的で SVG パス データ セットを使用する方法について説明します。 このアニメーションの各フレームで、パスに沿って新しい円要素をアニメーション化します。 各フレームには、各フレームで createParticle 関数を押すことによって作成される新しいパーティクルがロードされます。 アニメーションをより美しくするために、ヒューズのストロークとダッシュのオフセットもアニメーション化し、よりリアルに見えるようにしました。 SVG パスからポイントの座標を抽出し、新しい API を使用して他のパスに適用できるようになりました。 各ベクトルのアニメーションには、パスに沿った独自の位置から計算された独自の遅延があるため、適切なパーティクルの流れが生成されることが期待されます。 時間をかけてこのテクニックを試し、結果を Twitter で共有してください。
Web サイトで SVG をアニメーション化する必要がある理由
JavaScript は、外部 JavaScript メニューからアクセスできます。 このパスが画面上でゆっくりとスムーズに描画されているかのようにアニメートするには、ダッシュ (およびギャップ) の長さをパスの長さと同じに設定する必要があります。 曲線パスの各ダッシュとギャップの長さは、パス全体の長さと同じです。 どのようにsvaをアニメートしますか? CSS と SVG を使用してウェブサイトをアニメーション化すると、かさばる gif やビデオと比較して読み込み時間が短縮されます。 別の JavaScript ライブラリをインストールせずに Web サイトをアニメーション化する機能により、ページの読み込み時に簡単なアニメーションを実行することもできます. SMIL は上場廃止になると思いますか? 実際、これはSMIL アニメーションの代わりにはなりません。 仕様は SMIL に基づいていますが、長年にわたって大幅に進化しています。 ブラウザはさまざまな方法でそれをサポートしています。
SVG アニメーションの例
SVG で使用できるアニメーションにはいくつかの種類があります。 これらには以下が含まれます:
・SMILアニメーション:SMIL(Synchronized Multimedia Integration Language)で書かれたアニメーションです。 SMIL は、タイミングとアニメーションを記述するために使用される XML ベースの言語です。
・CSSアニメーション:CSSで書かれたアニメーションです。 CSS は、マークアップ言語で書かれたドキュメントの表示を記述するために使用されるスタイル シート言語です。
・JavaScriptアニメーション:JavaScriptで書かれたアニメーションです。 JavaScript は、インタラクティブな Web ページを作成するために使用されるプログラミング言語です。
SVG (スケーラブル ベクター グラフィックス) は、任意のサイズにスケーリングできる視覚要素です。 ピクセルベースではなくコードベースであるため、後になって変更や適応が容易になります。 svg の最良の部分は何ですか? アニメーションは非常に小さく、読み込みが非常に高速です。 これらは、幅広い最新の Web デザイン アプリケーションに最適です。 アニメーターが接続されていて、アニメーション設定が設定されている場合、アニメーターを使用して画像をアニメーション化できます。 CSS、JavaScript、または HTML を使用して SVG をアニメーション化する場合は、Framer のSVG アニメーション ツールを使用します。
Svg は Css をアニメーション化できますか?
他にも利用可能なアニメーション ツールはありますが、CSS ほど簡単にアニメーション化することはできません。
Svg が Web デザインの優れた画像形式である理由
Scalable Vector Graphics (SVG) は、SEO フレンドリーでスケーラブルな高品質の画像を生成するために使用できるベクター画像形式です。 編集が簡単であるだけでなく、魅力的で視覚的に魅力的なユーザー インターフェイス効果を作成するために使用できる幅広い組み込みフィルターもあります。 もう 1 つのタイプは CSS です。これは、スケーラブルでカスタマイズが難しい、より伝統的なテキストベースの形式です。