指定したSVGオブジェクトに埋め込まれている<image>に設定されている画像ファイルやクリップパスを変更する。
<image>が存在しない場合には追加することも可能。
<svg>に<image>が設定されていない場合には、『画像ファイルパス』と『clip-pathのid値』の2つが指定された場合のみ<image>を追加可能。この時、widthとheightが省略されている場合には、対象となる<svg>のviewBoxから値が代入される。
画像はpht_1.jpgが設定され、パス1が適用されている状態から変更する。
HTML :
<svg style="position: absolute; top: -9999px;"> // clipPath定義用のSVG
<clipPath id="samplepath1">
<path d="M18.23,187.847c0,──省略──"/>
</clipPath>
<clipPath id="samplepath2">
<path d="M73.896,200c-3.261,──省略──"/>
</clipPath>
<clipPath id="samplepath3">
<path d="M299.362,119.214c-0.708,──省略──"/>
</clipPath>
</svg>
<svg id="img1" width="450" height="300" viewBox="0 0 300 200"> // 表示用のSVG
<image xlink:href="images/pht_1.jpg" clip-path="url(#samplepath1)" width="300" height="200">
</svg>
Javascript :
$svgSetImage('img1','images/pht_2.jpg');
$svgSetImage('img1','images/pht_3.png','samplepath2');
$svgSetImage('img1',false,'samplepath3');
<image>が設定されていない状態から変更する。
HTML :
<svg style="position: absolute; top: -9999px;"> // clipPath定義用のSVG
<clipPath id="samplepath1">
<path d="M18.23,187.847c0,──省略──"/>
</clipPath>
<clipPath id="samplepath2">
<path d="M73.896,200c-3.261,──省略──"/>
</clipPath>
<clipPath id="samplepath3">
<path d="M299.362,119.214c-0.708,──省略──"/>
</clipPath>
</svg>
<svg id="img2" width="450" height="300" viewBox="0 0 300 200"> // 表示用のSVG・<image>は未設定
</svg>
Javascript :
$svgSetImage('img2','images/pht_1.jpg','samplepath2');
$svgSetImage('img2',false,'510 340');
$svgSetImage('img2',false,'samplepath1','510 340 center center');