複数の Svg Javascript を使用する方法
公開: 2023-01-28Web 開発者が Web ページに複数の Scalable Vector Graphics (SVG) を組み込みたいと思うことは珍しくありません。 これを実現する方法はいくつかありますが、1 つの方法は、JavaScript を使用してSVG コードを HTML に直接埋め込むことです。 これは、
このシリーズの第 1 部では、基本的な形状と高度な形状を描画する方法について説明しました。 パート 2 では、高度な機能と、SVG が CSS や JavaScript などの他のブラウザー テクノロジと対話する方法について説明します。 この投稿では、JavaScript コンポーネントの作成方法の学習に焦点を当てています。 このセクションでは、ストロークを見て、 SVG 要素の属性を入力しました。 グラデーションは、線形と放射状の 2 つのタイプに分類されます。 さまざまなストップの不透明度を制御することで、グラデーションの角度を変更できます。 パターンに加えて、それらを使用して興味深い方法で形状を塗りつぶすことができます。
三角形をスマイリーフェイスで埋めたい場合、スマイリーフェイスが 30 個あると想像してください。 ransform 属性を使用すると、SVG を使用してさまざまな方法で形状を操作できます。 マトリックス内の他のすべての変換、およびマトリックスを使用した他の変換の合成を表現するには、マトリックス変換が最も一般的です。 クリッピングとマスキングは、クリッピングと同じ機能を実行するという点で似ていますが、マスキングは背景によって部分的に隠されているように見える場合があります。 CSS スタイルを使用すると、HTML 要素と同じ方法で SVG 要素のスタイルを設定できます。 CSS ページを作成すると、CSS のルック アンド フィールがSVG ファイルのルック アンド フィールから分離されるだけでなく、CSS ページが HTML ページから分離されます。 イベント リスナーを使用する場合、SVG 要素に直接追加できます。
次の例の円の上にマウスを移動すると、塗りつぶしの色がシルバーからイエローに変わります。 SVG 形式は、成熟した洗練されたグラフィック形式です。 ラスター形式であるJPEGやPNGよりも使いやすいベクター形式です。 最も効果的な方法で最大限の作業を行うには、適切な描画ツールを使用することをお勧めします。 幸いなことに、SVG 出力形式をサポートするツールは数多くあります。 ユーザー セッションをビデオとして再生できる SessionStack を使用して、ユーザーが行ったことをリアルタイムで確認できます。 このアプリの視覚的に見事な機能は、グラフィックスを操作したときに何が起こるか、どのように体験し、問題をすばやく特定するかを示します。 SessionStack を試してみたい場合は、期間限定で無料で試すことができます。
2 つの Svg Javascript をマージ
2 つのsvg javascriptをマージする方法はいくつかありますが、最も簡単な方法は D3.js のようなライブラリを使用することです。 D3 では、マージする 2 つの要素を選択し、.merge() 関数を使用するだけです。
1 つのファイルに複数の SVG
1 つのファイルに複数の SVGを含めることは可能ですが、お勧めしません。 最適な編成とパフォーマンスを得るには、各 SVG を独自のファイルにする必要があります。
CodePen では、HTML エディターに表示されるコードはすべて、基本的な HTML5 テンプレート内に表示されるコードです。 ドキュメント全体に直接影響を与えるクラスを含めたい場合は、ここが最適です。 プロパティと値のベンダーは、実行する必要があるプロパティと値に頻繁に適用されるベンダー プレフィックスです。 インターネット上のどこからでもペンに接続し、そこからスクリプトを使用できます。 次に、ここの URL フィールドに URL を配置するだけで、ペンの JavaScript の前に追加されます。 リンクするスクリプトのファイル拡張子が変更されている場合は、申請前に処理を試みます。
インライン SVG Javascript
インライン SVGは、ベクター グラフィックスを HTML ドキュメント内に直接表示できるようにする XML マークアップ言語です。 これにより、開発者は、別のプラグインやアプリケーションを必要とせずに、インタラクティブなベクター グラフィックを使用して Web ページを作成できます。 インライン SVG を使用すると、開発者は CSS を使用してベクター グラフィックスのスタイルを設定し、JavaScript を使用してそれらをアニメーション化することもできます。
Javascript 関数は、インライン SVGを使用して実行できます。 私が提案したアプローチはうまくいかないと判断したので、以下の手順に従いました。 JavaScript ブロックに関数を入力し、onclick イベントを定義して、Javascript ブロックを追加します。 関数に $action を入れて、アクションを事前保留にします。 前回の記事で行った推奨事項に従って、手順の下に PoC を作成し、すぐにテストしました。 要素がクリックされると、メッセージのみを含むクライアント アクション Handler_OnSVGClick を使用します。 Jo*o は洞察力に富んだ解決策を持っており、彼が私よりも知的な男であることに同意します。
インライン SVG は外部 SVG より優れている
インライン svg ファイルを作成する場合は、外部 svg ファイルを使用します。 ほとんどの場合、インライン SVG が最適な選択ですが、場合によっては外部の埋め込みファイルが望ましい場合もあります。 スクリプト、管理、スタイル、および保守が容易になります。
Javascript を使用して SVG を挿入する
JavaScript で SVG を注入するには、さまざまな方法があります。 1 つの方法は、SVG ファイルを HTML 要素の背景画像として使用することです。 これは、CSS プロパティ 'background-image' を 'url(“path/to/file.svg”)' に設定することで実行できます。 別のアプローチは、' ' タグを付けて、'src' 属性を 'path/to/file.svg' に設定します。
HTML と同様に、植生はドキュメント オブジェクト モデル (DOM) を使用して表現されます。 これは、Javascript で比較的簡単に操作できることを意味します。 このセクションでは、インライン SVG と外部 SVGの両方を使用する方法について説明します。 コード例は、このページの上部にあり、Github リンクをクリックしてアクセスできます。 外部 SVG を使用する場合、 <script> 要素をロードするときに同じコードを含める必要があります。 SVG はページ上の他の SVG を認識できないため、ページに埋め込まれた HTML ドキュメントを使用して作成できます。 コードが CDATA でラップされている場合、JS コードは、解析された場所に関係なく、XML の一部と見なされます。
HTML で要素を作成および削除することは同じことです。 関連するドキュメントの createElementNS メソッドは、タグ名と、作成する要素を含む名前空間を渡す必要があります。 createTextNode を使用して要素に追加する必要がある要素を削除するには、別のテキスト ノードを作成する必要があります。 これは、同じドキュメントにないため機能します。
Css の SVG 画像
SVG 画像は、CSS でさまざまな用途に使用できます。 SVG ファイルをインライン イメージに含める最も簡単な方法は、データ URI 形式を使用することです。 たとえば、br と言います。 背景画像として url (mySVG.svg) と発音します。 コンポーネントのエンコードされた値を取得するために encodeURIComponent() を呼び出さなくても、最新のブラウザでこのメソッドを使用できます。 CSS でエンコードせずに SVG を使用するには、インライン スタイル プロパティ [br] を使用します。 それは少し危険です。 Inline-svg がデフォルトです。 これは、encodeURIComponent() 呼び出しを使用せずに、最新のすべてのブラウザーで実行されます。 CSS で SVG を使用し、古いブラウザーでも動作させたい場合は、svg() 短縮形プロパティを使用してください: https://br.shtml ご覧のとおり、* は大文字です。 背景には svg() を使用します。 最新のブラウザはすべて、インライン スタイルをサポートしていないブラウザでも動作します。
Html で Svg を使用する方法
svg> */svg> タグを使用すると、画像を HTML ドキュメントに直接追加できます。 次の手順では、VS コードまたは好みの IDE でSVG イメージを開き、コードをコピーして、HTML ドキュメントの body> 要素に貼り付けます。 他のすべてが整っていれば、以下のデモとまったく同じように見える Web ページが表示されます。
新しい座標系とビューポートの定義は、SVG 要素の 1 つです。 Scalable Vector Graphics (SVG) は、ベクター データを使用する画像形式の一種です。 SVG を使用すると、他の種類の画像とは異なり、画像に明確なピクセルがありません。 ベクトル データは、任意の解像度にスケーリングできる画像を作成するために使用されます。 HTML で長方形を生成するには、>rect> 要素を使用します。 スターは PNG タグを使用して作成できます。 線形グラデーションを使用して SVG でロゴを作成できます。
ファイル サイズが小さいため、SVG を使用して Web サイトに画像を簡単にロードできます。 SVG グラフィックスの作成者にとって、解像度は問題ではありません。 その結果、これらのプログラムはさまざまなデバイスやブラウザーと互換性があります。 PNG や JPG などのラスター形式を拡大すると、デジタル化されます。 インライン SVG は、HTTP リクエストに依存しない画像ファイルをロードするための簡単な方法です。 Web サイトがレスポンシブであれば、ユーザーはそれに気付きます。
Svg と Css
SVG (Scalable Vector Graphics) は、対話機能とアニメーションをサポートする 2 次元グラフィックス用の XML ベースのベクター画像形式です。 CSS (Cascading Style Sheets) は、マークアップ言語で書かれたドキュメントのプレゼンテーションを記述するために使用されるスタイル シート言語です。 CSS スタイル シートは、HTML または XML で記述されたドキュメントを表示する方法を Web ブラウザーに指示する規則の集まりです。
プレゼンテーション属性は SVG 要素のスタイルを設定するために使用され、要素は CSS プロパティにすることもできます。 たとえば、塗りつぶしを使用して、CSS で要素の色を白から赤に変更できます。 テキスト、マスキング、フィルタリング、およびフィルター効果は、CSS およびSVG プロパティの例です。 各 SVG 要素の CSS プロパティは、他の要素の CSS プロパティとは若干異なります。 ソフトウェアの最新バージョンでは、rx や ry などのジオメトリ プロパティが定義されています。 ジオメトリ プロパティは、塗りや線などのプレゼンテーション属性と同じ方法で CSS プロパティとして使用することもできます。 要素は、CSS をオーバーライドとして使用して形状に変換できます。
>rect> 要素については、CSS を使用して高さと幅を指定することもできます。 要素の形状は、d プロパティを使用して指定できます。 a:active 疑似クラスを追加すると、形状が正方形に変形し、クリックすると塗りつぶしの色が変わります。 CSS の各シェイプ クラスにアニメーションの遅延を追加するには、アニメーションの遅延を使用します。 これらの手法をすぐに本番環境で使用する必要はありません。
SVG マージ
SVG Mergeは、複数の SVG ファイルを取得して単一の SVG ファイルを出力するコマンド ライン ツールです。 出力ファイルには、入力ファイルのすべての形状が 1 つにマージされて含まれます。
複数の SVG ファイルを 1 つに結合する機能は、SVG Merger を使用することによって提供されます。 このツールを使用して、SVG 画像を結合した後、結果の sva ファイルをエクスポートできます。 このプログラムは、オペレーティング システムに関係なく、任意の Web ブラウザーで実行されます。 SVG ファイルのサイズが 10 MB を超えることはお勧めしません。
SVG グラフィックス
SVG は、対話機能とアニメーションをサポートする 2 次元グラフィックスのベクター グラフィック形式です。 SVG 仕様は、1999 年以来、World Wide Web Consortium (W3C) によって開発されたオープン スタンダードです。SVG 画像とその動作は、XML テキスト ファイルで定義されます。 これは、それらを検索、索引付け、スクリプト化、および圧縮できることを意味します。 XML ファイルとして、SVG 画像は任意のテキスト エディタで作成および編集できますが、描画ソフトウェアで作成されることが多いです。
Scalable Vector Graphics (SVG) は、2 次元グラフィックス ライブラリの一種です。 このアプリケーションは、XML ベースのファイル形式とグラフィカル プログラミング インターフェイスの 2 つの部分に分かれています。 主な機能を使用して、図形、テキスト、埋め込まれたラスター グラフィックスなど、いくつかの種類の描画スタイルを適用できます。 ECMAScript などのスクリプト言語と完全なアニメーション サポート 主要な印刷ハードウェア メーカーは、ハード コピー印刷用に特別に設計されたバージョンの SVG を開発しています。 Postscript や PDF とは対照的に、XML ベースのページ記述を含む使用例は多数あります。 多くの設計ツールが SVG のインポートとエクスポートをサポートしているため、クロスプラットフォームの交換形式として使用できます。 SVG 言語は、2 次元グラフィックスを XML で記述します。
グラフィック オブジェクトは、ベクター グラフィック、イメージ、テキストの 3 種類に分類できます。 オブジェクトは、グラフィカル コンテキストでグループ化、スタイル設定、変換、および合成できます。 デバイスは、 SVG フロント エンドを備えた産業用制御システムなどを制御および監視できます。