SVGMarkerElement: preserveAspectRatio 屬性

Baseline 已廣泛支援

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

SVGMarkerElement 介面的只讀屬性 preserveAspectRatio 返回一個 SVGAnimatedPreserveAspectRatio 物件,其中包含 <marker> 元素的 preserveAspectRatio 屬性的值。

一個 SVGAnimatedPreserveAspectRatio 物件。該物件的 baseVal 屬性返回一個 SVGPreserveAspectRatio 物件,具有以下屬性:

align

以下數值常量之一:

0

SVG_PRESERVEASPECTRATIO_UNKNOWN

1

SVG_PRESERVEASPECTRATIO_NONE

2

SVG_PRESERVEASPECTRATIO_XMINYMIN

3

SVG_PRESERVEASPECTRATIO_XMIDYMIN

4

SVG_PRESERVEASPECTRATIO_XMAXYMIN

5

SVG_PRESERVEASPECTRATIO_XMINYMID

6

SVG_PRESERVEASPECTRATIO_XMIDYMID

7

SVG_PRESERVEASPECTRATIO_XMAXYMID

8

SVG_PRESERVEASPECTRATIO_XMINYMAX

9

SVG_PRESERVEASPECTRATIO_XMIDYMAX

10

SVG_PRESERVEASPECTRATIO_XMAXYMAX

meetOrSlice

以下數值常量之一:

0

SVG_MEETORSLICE_UNKNOWN

1

SVG_MEETORSLICE_MEET

2

SVG_MEETORSLICE_SLICE

示例

此示例演示如何返回與 <marker> 元素的 preserveAspectRatio 屬性值相關的 alignmeetOrSlice 的數值常量。

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"
      preserveAspectRatio="xMidYMid meet"
      markerWidth="6"
      markerHeight="6"
      orient="auto-start-reverse">
      <path d="M 0 0 L 10 5 L 0 10 z" />
    </marker>
  </defs>
</svg>
js
let marker = document.getElementById("arrow");
console.log(marker.preserveAspectRatio.baseVal.align); // 6
console.log(marker.preserveAspectRatio.baseVal.meetOrSlice); // 1

規範

規範
Scalable Vector Graphics (SVG) 2
# __svg__SVGFitToViewBox__preserveAspectRatio

瀏覽器相容性