HTML ページに SVG を挿入する複数の方法

HTML ページに SVG を挿入する複数の方法

SVG (Scalable Vector Graphics)は、XML 構文に基づいた画像形式です。他の画像形式はピクセル処理に基づいていますが、SVG は画像の形状を記述したものなので、基本的には比較的サイズの小さいテキスト ファイルであり、拡大しても歪みません。

svgタグを挿入

<svg>タグを直接使用して Web ページにコンテンツを挿入し、それを DOM の一部にしてから、CSS と JS を使用して制御できます。

単純な円:

<svg 幅="400" 高さ="300" id="testSvg">
   <circle cx="100" cy="100" r="50" fill="red"strok="black" strok-width="2" id="testCircle"></circle>
</svg>

// CSS を使用して SVG のスタイルを制御できますが、属性は通常の Web 要素の属性とは異なります <style type="text/css">
   #testSvg {境界線:1px 実線 #ccc;}
   #testSvg 円 {
   	塗りつぶし: 赤;
   	ストローク:青;
   	ストローク幅: 3;
   }
</スタイル>

//JS を使用して SVG を操作したり、簡単なアニメーションを作成したりできます。<script type="text/javascript">
   var 円 = document.getElementById("testCircle");
   円.addEventListener("クリック", 関数(e) {
   	console.log("円をクリックしてください...");
   	円に属性を設定します。
   }、 間違い);
</スクリプト>

//JS を使用するだけでなく、SVG 独自の animate を使用してアニメーション効果を作成することもできます<svg width="400" height="300" id="testSvg">
   <circle cx="100" cy="100" r="50" id="testCircle">
   	<animate attributeName="cx" from="100" to="300" dur="2s" repeatCount="indefinite"></animate>
   </circle>
</svg>

表示効果:

ここに画像の説明を挿入

svgファイルを挿入

<img> <embed> <object> <iframe>などのタグを使用して、SVG ファイルを Web ページに挿入できます。
<img>を除き、他のすべてのタグは二重タグ形式を使用する必要があります。

//<img> タグを使用する <img src="test.svg'" />
//または SVG の base64 エンコード <img src="data:image/svg+xml;base64,[data]" />

//<embed> タグを使用します <embed id="embedSvg" type="image/svg+xml" src="test.svg"></embed>
//SVG DOMを取得する
var 埋め込みSVG = document.getElementById("埋め込みSVG").getSVGDocument();
console.log("SVG DOM: ", 埋め込みSvg);
		
//<object> タグを使用します <object id="objectSvg" type="image/svg+xml" data="test.svg"></object>
//SVG DOMを取得する
var objectSvg = document.getElementById("objectSvg").getSVGDocument();
console.log("SVG DOM: ", objectSvg);

//<iframe> タグを使用する <iframe id="iframeSvg" src="test.svg"></iframe>
//SVG DOMを取得する
var iframeSvg = document.getElementById("iframeSvg").contentDocument;
console.log("SVG DOM: ", iframeSvg);

SVG DOM出力:

ここに画像の説明を挿入

SVGを他のWebページ要素の背景画像として使用する

これは、SVG を Web ページに挿入する偽装された方法であり、つまり、SVG を通常の画像として使用し、アニメーション効果を表示できないようにします。

<スタイル タイプ="text/css">
	.svg-div {
		幅:400ピクセル;
		高さ:300px;
		background:url("test.svg") 繰り返しなし 中央 / 50%;
		境界線:1px実線 #ccc;
	}
</スタイル>

<div class="svg-div"></div>

効果:

ここに画像の説明を挿入

SVGソースコードを読む

SVG ファイルは本質的に XML テキストであるため、XML コードを読み取ることで SVG ソース コードを読み取ることができます。

var svgStr = new XMLSerializer().serializeToString(document.getElementById("testSvg"));
コンソールにログ出力します。

要約する

これで、HTML ページに SVG を挿入するさまざまな方法についての記事は終了です。HTML に SVG を挿入する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  MySQL データベースのマスター・スレーブ レプリケーションと読み取り/書き込み分離

>>:  njs モジュールを使用して nginx 構成に js スクリプトを導入する

推薦する

Dockerがsudo操作を使用する必要がある問題を解決する

手順は以下のとおりです1. dockerグループを作成する: sudo groupadd docke...

ウェブサイトのパフォーマンスを向上させるために画像を最適化する方法

目次概要画像圧縮とはJPEG/JPG JPGの利点JPGの使用シナリオJPGの欠点MozJPEG を...

CentOS 8 システム FTP サーバーのインストールとパッシブ モードの設定の詳細なチュートリアル

目次1. 基本を理解する2. システム環境を確認する3. ftpコマンドをインストールする[オプショ...

MySQL で主キーと ROWID を使用する際の落とし穴の概要

序文MySQL の rowid の概念については聞いたことがあるかもしれませんが、テストや実践が難し...

Docker での Redis の永続ストレージの詳細な説明

この章では、dockerの下にあるSpring BootプロジェクトでRedisを操作し始めます。準...

MySQL はパスワード強度の検証をオフにします

パスワード強度検証について: [root@mysql mysql]# mysql -uroot -p...

CentOS7 で MySQL データベースにリモート接続できない理由と解決策

序文最近、仕事で問題が発生しました。 Centos7 システムでは MySQL にリモート接続できな...

MySQLのユーザーアカウント管理と権限管理の詳細な説明

序文MySQL の権限テーブルは、データベースの起動時にメモリにロードされます。ユーザーが ID 認...

Vue でキープアライブを使用した後にキャッシュをクリアする方法

キープアライブとは何ですか?通常の開発では、コンポーネントによっては複数回初期化する必要のないものも...

Docker 経由で Redis 6.x クラスターをデプロイする方法

システム環境: Redis バージョン: 6.0.8 Docker バージョン: 19.03.12シ...

Linux で mysql-8.0.20 をインストールするための詳細なチュートリアル

** Linuxにmysql-8.0.20をインストールする**環境の紹介オペレーティングシステム:...

Dockerコンテナでルート権限を取得する方法

まず、コンテナが稼働している必要がありますコンテナのCONTAINER IDは、sudo docke...

キープアライブキャッシュをクリアする方法の詳細なグラフィック説明

目次オープニングシーンv-for を使用した直接レンダリングカスタムコンポーネントで直接レンダリング...

ノードの対応するバージョンに関する簡単な説明 node-sass sass-loader

目次ノードのバージョンが一致しない、ノードをアップグレードまたはダウングレードするnvm を使用して...

Dockerで最もよく使われるイメージコマンドとコンテナコマンドの詳細な説明

この記事では、Docker の使用で最もよく使用されるイメージ コマンドとコンテナ コマンドを一覧表...