SVGRadialGradientElement:fr 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

SVGRadialGradientElement 接口的只读属性 fr 将径向渐变的焦点圆的半径描述为 SVGAnimatedLength。它反映了 <radialGradient> 元素上 fr 属性的计算值。

属性值可以是 <length><percentage><number>SVGAnimatedLength.baseVal 的数值是径向渐变焦点在用户坐标系中的半径。

一个 SVGAnimatedLength 对象。

示例

给定以下 SVG,其中声明了两个具有不同单位类型的相同渐变

html
<svg viewBox="0 0 200 100" width="200" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <radialGradient id="gradient1" r="20%" fr="0.5">
      <stop offset="0%" stop-color="red" />
      <stop offset="100%" stop-color="yellow" />
    </radialGradient>
    <radialGradient id="gradient2" r="20%" fr="50%">
      <stop offset="0%" stop-color="red" />
      <stop offset="100%" stop-color="yellow" />
    </radialGradient>
  </defs>
  <rect x="0" y="0" width="100" height="100" fill="url(#gradient1)" />
  <rect x="100" y="0" width="100" height="100" fill="url(#gradient2)" />
</svg>

我们可以访问 fr 属性的单位类型、值以及不带单位类型的值

js
const radialGradients = document.querySelectorAll("radialGradient");
const frGradient1 = radialGradients[0].fr;
const frGradient2 = radialGradients[1].fr;

console.log(frGradient1.baseVal.unitType); // 1 (SVGLength.SVG_LENGTHTYPE_NUMBER)
console.log(frGradient1.baseVal.value); // 0.5
console.log(frGradient1.baseVal.valueInSpecifiedUnits); // 0.5

console.log(frGradient2.baseVal.unitType); // 2 (SVGLength.SVG_LENGTHTYPE_PERCENTAGE)
console.log(frGradient2.baseVal.value); // 79.05693817138672
console.log(frGradient2.baseVal.valueInSpecifiedUnits); // 50

规范

规范
Scalable Vector Graphics (SVG) 2
# __svg__SVGRadialGradientElement__fr

浏览器兼容性

另见