SVGLength

Baseline 已廣泛支援

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

SVGLength 介面對應於 <length> 基本資料型別。

SVGLength 物件可以被指定為只讀,這意味著嘗試修改該物件將導致丟擲異常。

例項屬性

unitType

由該介面上定義的 SVG_LENGTHTYPE_* 常量之一指定的此值的型別。

value

此值為浮點數值,以使用者單位表示。

valueAsString

此值為字串值,以 unitType 表示的單位表示。

valueInSpecifiedUnits

此值為浮點數值,以 unitType 表示的單位表示。

例項方法

convertToSpecifiedUnits()

保留相同的底層儲存值,但將儲存的單位識別符號重置為給定的 unitType

newValueSpecifiedUnits()

將值重置為帶有關聯 unitType 的數字,從而替換物件上所有屬性的值。

靜態屬性

SVG_LENGTHTYPE_UNKNOWN (0)

單位型別不是預定義的單位型別之一。嘗試定義此型別的新值或嘗試將現有值切換到此型別是無效的。

SVG_LENGTHTYPE_NUMBER (1)

未提供單位型別(即,指定了一個無單位的值),這表示一個使用者單位值。

SVG_LENGTHTYPE_PERCENTAGE (2)

指定了一個百分比值。

SVG_LENGTHTYPE_EMS (3)

使用 em 單位指定了一個值。

SVG_LENGTHTYPE_EXS (4)

使用 ex 單位指定了一個值。

SVG_LENGTHTYPE_PX (5)

使用 px 單位指定了一個值。

SVG_LENGTHTYPE_CM (6)

使用 cm 單位指定了一個值。

SVG_LENGTHTYPE_MM (7)

使用 mm 單位指定了一個值。

SVG_LENGTHTYPE_IN (8)

使用 in 單位指定了一個值。

SVG_LENGTHTYPE_PT (9)

使用 pt 單位指定了一個值。

SVG_LENGTHTYPE_PC (10)

使用 pc 單位指定了一個值。

示例

xml
<svg height="200" onload="start();" version="1.1" width="200" xmlns="http://www.w3.org/2000/svg">
  <script><![CDATA[
function start() {
  const rect = document.getElementById("myRect");
  const val = rect.x.baseVal;

  // read x in pixel and cm units
  console.log(
    `value: ${val.value}, valueInSpecifiedUnits: ${val.valueInSpecifiedUnits} (${val.unitType}), valueAsString: ${val.valueAsString}`,
  );

  // set x = 20pt and read it out in pixel and pt units
  val.newValueSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PT, 20);
  console.log(
    `value: ${val.value}, valueInSpecifiedUnits: ${val.valueInSpecifiedUnits} (${val.unitType}), valueAsString: ${val.valueAsString}`,
  );

  // convert x = 20pt to inches and read out in pixel and inch units
  val.convertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_IN);
  console.log(
    `value: ${val.value}, valueInSpecifiedUnits: ${val.valueInSpecifiedUnits} (${val.unitType}), valueAsString: ${val.valueAsString}`,
  );
}
]]></script>
  <rect id="myRect"
        x="1cm" y="1cm"
        fill="green" stroke="black" stroke-width="1"
        width="1cm" height="1cm"
  />
</svg>

桌上型電腦顯示器上的結果(畫素單位將取決於 dpi)

value: 37.7952766418457, valueInSpecifiedUnits: 6: 1, valueAsString: 1cm
value: 26.66666603088379, valueInSpecifiedUnits 9: 20, valueAsString: 20pt
value: 26.66666603088379, valueInSpecifiedUnits 8: 0.277777761220932, valueAsString: 0.277778in

規範

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

瀏覽器相容性