Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

SVGLengthList

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die Schnittstelle SVGLengthList definiert eine Liste von SVGLength-Objekten. Sie wird für die Eigenschaften baseVal und animVal von SVGAnimatedLengthList verwendet.

Ein SVGLengthList-Objekt kann als schreibgeschützt festgelegt werden. Das bedeutet, dass Versuche, das Objekt zu ändern, zum Auslösen einer Ausnahme führen.

Ein SVGLengthList-Objekt ist indexierbar und kann mithilfe der Klammernotation wie ein Array aufgerufen werden. Das Lesen eines Index entspricht dem Aufruf von getItem(). Das Zuweisen zu einem Index entspricht dem Aufruf von replaceItem(), einschließlich der dadurch ausgelösten Ausnahmen.

Instanzeigenschaften

length

Die Anzahl der Elemente in der Liste.

numberOfItems

Die Anzahl der Elemente in der Liste.

Instanzmethoden

appendItem()

Fügt ein neues Element am Ende der Liste ein.

clear()

Entfernt alle vorhandenen Elemente aus der Liste, sodass eine leere Liste entsteht.

initialize()

Entfernt alle vorhandenen Elemente aus der Liste und initialisiert die Liste erneut, sodass sie das einzelne durch den Parameter angegebene Element enthält.

getItem()

Gibt das angegebene Element aus der Liste zurück.

insertItemBefore()

Fügt ein neues Element an der angegebenen Position in die Liste ein.

removeItem()

Entfernt ein vorhandenes Element aus der Liste.

replaceItem()

Ersetzt ein vorhandenes Element in der Liste durch ein neues Element.

Beispiele

Verwendung von SVGLengthList

Ein SVGLengthList-Objekt kann aus einem SVGAnimatedLengthList-Objekt abgerufen werden, das seinerseits aus vielen animierbaren Längenattributen wie SVGTextPositioningElement.x abgerufen werden kann.

HTML

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">Equally distribute letters</button>
<button id="reset-spacing">Reset spacing</button>
<div>
  <b>Current <code>SVGLengthList</code></b>
  <pre><output id="output"></output></pre>
</div>

JavaScript

js
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);

Ergebnis

Spezifikationen

Spezifikation
Scalable Vector Graphics (SVG) 2
# InterfaceSVGLengthList

Browser-Kompatibilität

Siehe auch