HTMLページにSVGを挿入するための様々な方法
2022-01-07 11:19:12
SVG(Scalable Vector Graphics)とは? Scalable Vector Graphicsは、XML構文に基づく画像フォーマットです。他の画像フォーマットがピクセル処理に基づいているのに対し、SVGは画像の形状記述の一部であるため、基本的にテキストファイルであり、サイズも比較的小さく、拡大縮小しても歪むことがないのが特徴です。
svgタグの挿入
を直接使用します。
<svg>
タグを使用して、DOMの一部となるコンテンツをページに挿入し、CSSやJSを使用して制御することができます。
シンプルな円形。
<svg width="400" heihgt="300" id="testSvg">
<circle cx="100" cy="100" r="50" fill="red" stroke="black" strock-width="2& quot; id="testCircle"></circle>
</svg>
// You can control the style of the SVG with CSS, but the properties are different from the normal web elements
<style type="text/css">
#testSvg {border:1px solid #ccc;}
#testSvg circle {
fill: red;
stroke: blue;
stroke-width: 3;
}
</style>
// You can use JS to manipulate SVG, make simple animations, etc.
<script type="text/javascript">
var circle = document.getElementById("testCircle");
circle.addEventListener("click", function(e) {
console.log("Click circle ... ");
circle.setAttribute("r", 65);
}, false);
</script>
//In addition to JS manipulation, you can use SVG's own animate to create animation effects
<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"& gt;</animate>
</circle>
</svg>
効果を表示します。
svgファイルの挿入
を使用することができます。
<img>
<embed>
<object>
<iframe>
などのタグを使って、SVGファイルをページに挿入することができます。
に加えて
<img>
を除き、すべてダブルタグの形式を使用する必要があります。
//Use <img> tags
<img src="test.svg'" />
//or base64 encoding for SVG
<img src="data:image/svg+xml;base64,[data]" />
//use <embed> tags
<embed id="embedSvg" type="image/svg+xml" src="test.svg"></embed>
//Get the SVG DOM
var embedSvg = document.getElementById("embedSvg").getSVGDocument();
console.log("SVG DOM: ", embedSvg);
//Use <object> tag
<object id="objectSvg" type="image/svg+xml" data="test.svg"></object>
//Get the SVG DOM
var objectSvg = document.getElementById("objectSvg").getSVGDocument();
console.log("SVG DOM: ", objectSvg);
//Use <iframe> tag
<iframe id="iframeSvg" src="test.svg"></iframe>
//Get the SVG DOM
var iframeSvg = document.getElementById("iframeSvg").contentDocument;
console.log("SVG DOM: ", iframeSvg);
SVG DOM出力。
svg を他のページ要素の背景画像として使用する
これは、svgをページに挿入する偽装方法です。つまり、svgをアニメーション効果を表示しない通常の画像として使用します。
<style type="text/css">
.svg-div {
width:400px;
height:300px;
background:url("test.svg") no-repeat center / 50%;
border:1px solid #ccc;
}
</style>
<div class="svg-div"></div>
効果
SVGソースコードの読み込み
SVGファイルは基本的にXMLテキストの一部であるため、XMLコードを読めばSVGのソースコードも読むことができます。
var svgStr = new XMLSerializer().serializeToString(document.getElementById("testSvg"));
console.log(svgStr);
概要
HTMLページにSVGを挿入する様々な方法についてご紹介しましたが、今回で終了です。HTMLページにSVGを挿入する方法については、Script Houseの過去の記事を検索するか、以下の記事を引き続きご覧ください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン