SVGTransformList
Базовая линия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Интерфейс списка преобразований SVG
SVGTransformList определяет список объектов SVGTransform.
Объект SVGTransformList может быть назначен как только для чтения, что означает, что попытки изменить объект приведут к исключению.
SVGTransformList индексируется и может быть доступен как массив.
Обзор интерфейса
| Также реализует | Ничего |
|---|---|
| Методы |
|
| Свойства |
|
| Нормативный документ | SVG 1.1 (2-е издание) |
Свойства экземпляра
| Имя | Тип | Описание |
|---|---|---|
numberOfItems | unsigned long | Количество элементов в списке. |
length | unsigned long | Количество элементов в списке. |
Методы экземпляра
| Имя и аргументы | Возврат | Описание |
|---|---|---|
| void | Очищает все существующие текущие элементы из списка, в результате чего список становится пустым. Исключения:
|
| SVGTransform | Очищает все существующие текущие элементы из списка и повторно инициализирует список, чтобы он содержал единственный элемент, указанный параметром. Если вставленный элемент уже находится в списке, он удаляется из своего предыдущего списка перед вставкой в этот список. Вставленный элемент — это сам элемент, а не его копия. Возвращаемым значением является вставленный в список элемент. Исключения:
|
| SVGTransform | Возвращает указанный элемент из списка. Возвращаемым элементом является сам элемент, а не его копия. Любые изменения, внесенные в элемент, немедленно отражаются в списке. Первый элемент имеет номер 0. Исключения:
|
| SVGTransform | Вставляет новый элемент в список в указанную позицию. Первый элемент имеет номер 0. Если Исключения:
|
| SVGTransform | Заменяет существующий элемент в списке новым элементом. Если Исключения:
|
| SVGTransform | Удаляет существующий элемент из списка. Исключения:
|
| SVGTransform | Вставляет новый элемент в конец списка. Если Исключения:
|
| SVGTransform | Создаёт объект SVGTransform, инициализированный преобразованием типа SVG_TRANSFORM_MATRIX, значения которого — заданная матрица. Значения из параметра матрицы копируются, параметр матрицы не принимается как SVGTransform::matrix. |
| SVGTransform | Объединяет список отдельных объектов Исключения:
|
Примеры
Использование нескольких объектов SVGTransform
В этом примере создаётся функция, которая будет применять три различных преобразования к элементу SVG, на который была нажата кнопка. Для этого мы создаём отдельный объект SVGTransform для каждого преобразования — например, translate, rotate, и scale. Мы применяем несколько преобразований, добавляя объект преобразования в SVGTransformList , связанный с элементом SVG.
<svg
id="my-svg"
viewBox="0 0 300 280"
xmlns="http://www.w3.org/2000/svg"
version="1.1">
<desc>
Example showing how to transform svg elements that using SVGTransform
objects
</desc>
<script type="application/ecmascript">
<![CDATA[
function transformMe(evt) {
// svg root element to access the createSVGTransform() function
const svgRoot = evt.target.parentNode;
// SVGTransformList of the element that has been clicked on
const tfmList = evt.target.transform.baseVal;
// Create a separate transform object for each transform
const translate = svgRoot.createSVGTransform();
translate.setTranslate(50,5);
const rotate = svgRoot.createSVGTransform();
rotate.setRotate(10,0,0);
const scale = svgRoot.createSVGTransform();
scale.setScale(0.8,0.8);
// apply the transformations by appending the SVGTransform objects to the SVGTransformList associated with the element
tfmList.appendItem(translate);
tfmList.appendItem(rotate);
tfmList.appendItem(scale);
}
]]>
</script>
<polygon
fill="orange"
stroke="black"
stroke-width="5"
points="100,225 100,115 130,115 70,15 70,15 10,115 40,115 40,225"
onclick="transformMe(evt)" />
<rect
x="200"
y="100"
width="100"
height="100"
fill="yellow"
stroke="black"
stroke-width="5"
onclick="transformMe(evt)" />
<text x="40" y="250" font-family="Verdana" font-size="16" fill="green">
Click on a shape to transform it
</text>
</svg>
Предварительный просмотр:
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
SVGTransformList |
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 |
consolidate |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
createSVGTransformFromMatrix |
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 | 9 | ≤12.1 | 13.1 | 35 | 9 | ≤12.1 | 13.4 | 1.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/SVGTransformList