SVGによるクリッピングサンプル

icon 項目のみ表示/展開表示の切り替え

クリップパスの概要

SVGでクリップパスを使用すると描画をクリップパスで示される領域に限定できます。
以下の例では、矢印をダイヤ状のクリッピングパスでクリップしその結果が黄色いダイヤであることを支援しています。
クリッピングパスはclipPathで定義しid要素で名前を定義します。図形やg要素にclip-pathを追加し先ほどのクリッピングパスのid名を指定するとクリッピングされて描画されます。

クリップ前の図形 SVGの代替画像 クリップパス SVGの代替画像 クリップ後の図形 SVGの代替画像
クリッピングパスの定義とクリッピングパスを適用する方法の例(上図の一番右側の図)のソースコードは以下の通りです。
<svg width="100" height="100"  viewBox="-50 -70 100 100" xmlns="http://www.w3.org/2000/svg"> 
<!-- クリッピングパス(名前がc1)の定義 -->
 <clipPath id="c1">
  <path  d="M -20,0 L 0,-20 L 20,0 L 0,20 z" />
 </clipPath>
<!-- クリッピングパスの適用例 -->
 <path d="M -20,20 H 20 V -20 H 30 L 0,-50 L -30,-20 h 10 z" fill="yellow" stroke="black" clip-path="url(#c1)" />
</svg>

クリップパスを動的に適用

Javascriptを使用してあらかじめ定義しているクリッピングパスを動的に図形に適用します。
ボタンをクリックするとクリップパスを適用します。
クリッピングしたい図形のオブジェクトをdocument.getElementByIdで取得し、setAttributeによりclip-path属性をクリッピングパスの名称に変更します。
SVGの代替画像

クリップパスを動的に作成

Javascriptを使用してクリッピングパスを動的に作成し図形に適用します。
ボタンをクリックするとクリップパスが適用されます。
空のクリッピングパスが作成されていますのでそのオブジェクトをdocument.getElementByIdで取得します。
document.createElementNSでクリッピングパスのpath図形を作成します。
クリッピンパスにsetAttributeによりpath図形のd属性にクリッピング形状を設定します。
appendChildにより空のクリッピングパスにpath図形を追加します。
クリッピングしたい図形のオブジェクトをdocument.getElementByIdで取得し、setAttributeによりclip-path属性をクリッピングパスの名称に変更します。
SVGの代替画像