JavaScriptによるSVG図形の追加サンプル
概要
JavascriptでSVG図形を追加するには、追加する図形の親になるSVGのオブジェクトをdocument.getElementById('id名')
で取得します。
親のSVGにはidで名前を定義しておく必要があります。
次に、document.createElementNS('http://www.w3.org/2000/svg','オブジェクト名');
により新規にオブジェクトを作成します。
オブジェクト名はSVGで使用するline,circle,path,text等のことです。
座標等のプロパティは基本的にオブジェクト.setAttribute('属性名',値)
を使用します。
テキストの文字列を指定する場合はオブジェクト.textContent='文字列'
、useで図形を参照する場合はオブジェクト.href.baseVal='#参照名'
を使用しないとうまくいきません。
最後に親オブジェクト.appendChild(オブジェクト);
で親に追加します。
フォームよりパラメータを入力して追加をクリックすると図形が追加されます
SVGの描画エリアは左上(-100,-100)-右下(100,100)ですので範囲に収まるように指定してください
円
テキスト
直線
ベージェ曲線
四角
直線0,0-100,100をJavaScriptで追加する例
html
<svg id="svg1" width="200" height="200" viewBox="-120 -120 240 240" xmlns="http://www.w3.org/2000/svg">
</svg>
Javascript
svg1=document.getElementById('svg1');
line1=document.createElementNS('http://www.w3.org/2000/svg','line');
line1.setAttribute('x1',0);
line1.setAttribute('y1',0);
line1.setAttribute('x2',100);
line1.setAttribute('y2',100);
line1.setAttribute('stroke','black');
svg1.appendChild(line1);
子オブジェクト全部を削除
html
<svg width="200" height="200" viewBox="-120 -120 240 240" xmlns="http://www.w3.org/2000/svg">
<circle cx="0" cy="0" r="90" stroke="black" fill="none" />
<g id="remove_svg">
<circle cx="0" cy="-45" r="45" stroke="red" fill="none" />
<circle cx="38.97" cy="22.5" r="45" stroke="blue" fill="none" />
<circle cx="-38.97" cy="22.5" r="45" stroke="green" fill="none" />
</g>
</svg>
Javascript
var svg=document.getElementById('remove_svg');
while (svg.firstChild)
svg.removeChild(svg.firstChild);