将SVG径向渐变蒙版应用于多个项目

时间:2013-10-16 21:23:55

标签: svg mask radial-gradients

我有许多不同颜色和大小的svg圆圈,我想应用径向渐变蒙版。有没有办法通过拉伸它以匹配该圆的大小来定义应用于每个圆的单个蒙版?

这是我到目前为止所提出的:

<radialGradient id="radialGradient" cx=".5" cy=".5" r=".5">
  <stop offset="0%" stop-color="white" stop-opacity="0"/>
  <stop offset="100%" stop-color="white" stop-opacity="1"/>
</radialGradient>
<mask id="radialMask" maskUnits="objectBoundingBox" x="0" y="0" width="1.0" height="1.0">
  <circle cx="0" cy="0" r="50%" fill="url(#radialGradient)"/>
</mask>

...

<circle cx="10" cy="10" r="10" fill="red" mask="url(#radialMask)"/>
<circle cx="100" cy="100" r="50" fill="blue" mask="url(#radialMask)"/>

问题在于,遮罩/圆圈中的百分比半径似乎不是相对于应用遮罩的圆圈大小来测量的。

有没有办法这样做而不需要为我应用它的每个项目定义一个新的掩码?

1 个答案:

答案 0 :(得分:3)

您也应该设置maskContentUnits="objectBoundingBox"。这将使掩码内容相对于被遮罩对象的大小。