SVGMarkerElement
Базовая поддержка Широко распространена *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.
* Некоторые части этой функции могут иметь разный уровень поддержки.
Интерфейс SVGMarkerElement предоставляет доступ к свойствам элементов <marker>, а также методы для их манипулирования. Элемент <marker> определяет графику, используемую для рисования меток на фигуре.
Следующие свойства и методы возвращают или действуют на атрибуты элемента <marker>, представленного SVGMarkerElement.
Свойства экземпляра
Этот интерфейс также наследует свойства от своего родителя, SVGElement.
-
SVGMarkerElement.markerUnitsТолько для чтения -
Возвращает объект
SVGAnimatedEnumerationс одним из следующих значений:- 0
-
SVG_MARKERUNITS_UNKNOWN, что означает, что атрибутmarkerUnitsимеет значение, отличное от двух предопределённых ключевых слов. - 1
-
SVG_MARKERUNITS_USERSPACEONUSE, что означает, что атрибутmarkerUnitsимеет ключевое словоuserSpaceOnUse. - 2
-
SVG_MARKERUNITS_STROKEWIDTH, что означает, что атрибутmarkerUnitsимеет ключевое словоstrokeWidth.
-
SVGMarkerElement.markerWidthТолько для чтения -
Возвращает объект
SVGAnimatedLength, содержащий ширину области просмотра<marker>. -
SVGMarkerElement.markerHeightТолько для чтения -
Возвращает объект
SVGAnimatedLength, содержащий высоту области просмотра<marker>. -
SVGMarkerElement.orientTypeТолько для чтения -
Возвращает объект
SVGAnimatedEnumerationс одним из следующих значений:- 0
-
SVG_MARKER_ORIENT_UNKNOWN, что означает, что атрибутorientимеет значение, отличное от двух предопределённых ключевых слов. - 1
-
SVG_MARKERUNITS_ORIENT_AUTO, что означает, что атрибутorientимеет ключевое словоauto. - 2
-
SVG_MARKERUNITS_ORIENT_ANGLE, что означает, что атрибутorientимеет значение<angle>или<number>, указывающее угол.
-
SVGMarkerElement.orientAngleТолько для чтения -
Возвращает объект
SVGAnimatedAngle, содержащий угол атрибутаorient. -
SVGMarkerElement.refXТолько для чтения -
Возвращает объект
SVGAnimatedLength, содержащий значение атрибутаrefXэлемента<marker>. -
SVGMarkerElement.refYТолько для чтения -
Возвращает объект
SVGAnimatedLength, содержащий значение атрибутаrefYэлемента<marker>. -
SVGMarkerElement.viewBoxТолько для чтения -
Возвращает объект
SVGAnimatedRect, содержащий прямоугольникSVGRect, содержащий значения, заданные атрибутомviewBoxдля<marker>. -
SVGMarkerElement.preserveAspectRatioТолько для чтения -
Возвращает объект
SVGPreserveAspectRatio, содержащий значения, заданные атрибутомpreserveAspectRatioдля области просмотра<marker>.
Методы экземпляра
Этот интерфейс также наследует методы от своего родителя, SVGElement.
SVGMarkerElement.setOrientToAuto()-
Устанавливает значение атрибута
orientвauto. SVGMarkerElement.setOrientToAngle()-
Устанавливает значение атрибута
orientна определённое значение угла.
Примеры
В примерах будет использоваться следующий SVG.
<svg id="svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<defs>
<marker
id="arrow"
viewBox="0 0 10 10"
refX="5"
refY="5"
markerWidth="6"
markerHeight="6"
orient="90">
<path d="M 0 0 L 10 5 L 0 10 z" />
</marker>
</defs>
</svg>
Получение ширины метки
Свойство markerWidth возвращает объект SVGAnimatedLength, который содержит SVGLength со значением атрибута markerWidth.
let marker = document.getElementById("arrow");
console.log(marker.markerWidth.baseVal.value); // 6
Обновление угла ориентации
В следующем примере значение атрибута orient обновляется с помощью setOrientToAngle() используя SVGAngle, созданный с помощью SVGElement.createSVGAngle().
let svg = document.getElementById("svg");
let marker = document.getElementById("arrow");
console.log(marker.orientAngle.baseVal.value); // value in SVG above - 90
let angle = svg.createSVGAngle();
angle.value = "110";
marker.setOrientToAngle(angle);
console.log(marker.orientAngle.baseVal.value); // new value - 110
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в IOS | Samsung Internet | WebView Android | |
SVGMarkerElement |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
markerHeight |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
markerUnits |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
markerWidth |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
orient |
Нет | Нет | Нет | Нет | 13.1 | Нет | Нет | Нет | 13.4 | Нет | Нет |
orientAngle |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
orientType |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
preserveAspectRatio |
1 | 12 | 2 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
refX |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
refY |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
setOrientToAngle |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
setOrientToAuto |
1 | 12 | 1.5 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 3 |
viewBox |
1 | 12 | 2 | ≤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/SVGMarkerElement