SVGLengthList
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
SVGLengthList インターフェイスは、 SVGLength オブジェクトのリストを定義します。これは、 SVGAnimatedLengthList の baseVal および animVal プロパティで使用します。
SVGLengthList オブジェクトは読み取り専用として指定することができます。すなわち、オブジェクトを変更しようとすると例外が発生するようにすることができます。
SVGLengthList オブジェクトはインデックス指定可能であり、配列のようにアクセスすることができます。
インスタンスプロパティ
- length
- 
リスト内のアイテム数です。 
- numberOfItems
- 
リスト内のアイテム数です。 
インスタンスメソッド
- appendItem()
- 
新しいアイテムをリストの末尾に追加します。 
- clear()
- 
リストから既存のアイテムをすべて削除し、リストを空にします。 
- initialize()
- 
リストから既存のアイテムをすべて削除し、引数で指定した単一のアイテムを保持するようにリストを再初期化します。 
- getItem()
- 
リストから特定のアイテムを返します。 
- insertItemBefore()
- 
新しいアイテムをリストの指定した位置に挿入します。 
- removeItem()
- 
リストから既存のアイテムを除去します。 
- replaceItem()
- 
リスト内の既存のアイテムを新しいアイテムで置き換えます。 
例
>SVGLengthList の使用
SVGLengthList オブジェクトは、 SVGAnimatedLengthList オブジェクトから取得できます。これは、 SVGTextPositioningElement.x などの多くのアニメーション化可能な長さの属性から取得できます。
HTML
<svg
  viewBox="0 0 200 100"
  xmlns="http://www.w3.org/2000/svg"
  width="200"
  height="100">
  <text id="text1" x="10" y="50">Hello</text>
</svg>
<button id="equally-distribute">文字を均等配置</button>
<button id="reset-spacing">間隔をリセット</button>
<div>
  <b>現在の <code>SVGLengthList</code></b>
  <pre><output id="output"></output></pre>
</div>
JavaScript
const text = document.getElementById("text1");
const output = document.getElementById("output");
const list = text.x.baseVal;
function equallyDistribute() {
  list.clear();
  for (let i = 0; i < text.textContent.length; i++) {
    const length = text.ownerSVGElement.createSVGLength();
    length.value = i * 20 + 10;
    list.appendItem(length);
  }
  printList();
}
function resetSpacing() {
  const length = text.ownerSVGElement.createSVGLength();
  length.value = 10;
  list.initialize(length);
  printList();
}
function printList() {
  output.textContent = "";
  for (let i = 0; i < list.length; i++) {
    output.innerText += list.getItem(i).value + "\n";
  }
}
printList();
document
  .getElementById("equally-distribute")
  .addEventListener("click", equallyDistribute);
document
  .getElementById("reset-spacing")
  .addEventListener("click", resetSpacing);
結果
仕様書
| Specification | 
|---|
| Scalable Vector Graphics (SVG) 2> # InterfaceSVGLengthList> | 
ブラウザーの互換性
Loading…