SVGMarkerElement

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

* 此特性的某些部分可能存在不同級別的支援。

SVGMarkerElement 介面提供了對 <marker> 元素屬性的訪問,以及操作它們的方法。<marker> 元素定義了用於在形狀上繪製標記的圖形。

EventTarget Node Element SVGElement SVGMarkerElement

以下屬性和方法都返回或作用於由 SVGMarkerElement 表示的 <marker> 元素的屬性。

例項屬性

此介面還繼承了其父介面 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> 視口(viewport)的寬度。

SVGMarkerElement.markerHeight 只讀

返回一個 SVGAnimatedLength 物件,其中包含 <marker> 視口(viewport)的高度。

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 物件,其中包含 <marker> 元素的 refX 屬性的值。

SVGMarkerElement.refY 只讀

返回一個 SVGAnimatedLength 物件,其中包含 <marker> 元素的 refY 屬性的值。

SVGMarkerElement.viewBox 只讀

返回一個 SVGAnimatedRect 物件,其中包含一個 SVGRect,該物件包含 <marker> 元素上 viewBox 屬性設定的值。

SVGMarkerElement.preserveAspectRatio 只讀

返回一個 SVGPreserveAspectRatio 物件,其中包含 <marker> 視口(viewport)上 preserveAspectRatio 屬性設定的值。

例項方法

此介面還繼承了其父介面 SVGElement 的方法。

SVGMarkerElement.setOrientToAuto()

orient 屬性的值設定為 auto

SVGMarkerElement.setOrientToAngle()

orient 屬性的值設定為特定的角度值。

示例

以下 SVG 將在示例中使用。

html
<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 屬性的值。

js
let marker = document.getElementById("arrow");
console.log(marker.markerWidth.baseVal.value); // 6

更新方向角度

在下面的示例中,使用透過 SVGElement.createSVGAngle() 建立的 SVGAngle,使用 setOrientToAngle() 方法更新 orient 屬性的值。

js
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

規範

規範
Scalable Vector Graphics (SVG) 2
# 介面 SVGMarkerElement

瀏覽器相容性