SVGLengthList
Базовая поддержка Широко распространена
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
Интерфейс SVGLengthList определяет список объектов SVGLength. Он используется для свойств baseVal и animVal объекта SVGAnimatedLengthList.
Объект 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">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
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);
Результат
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
SVGLengthList |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
appendItem |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
clear |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
getItem |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
initialize |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
insertItemBefore |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
length |
35 | 79 | 5 | ≤12.1 | 13.1 | 35 | 5 | ≤12.1 | 13.4 | 3.0 | 37 |
numberOfItems |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
removeItem |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
replaceItem |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SVGLengthList