我有两个几乎相同的代码片段,其中应该根据矩形剪切圆圈的右半部分。在第一个例子中,一切运作良好:
<svg>
<clipPath id="cut">
<rect width="100" height="100" x="100" y="50"></rect>
</clipPath>
<circle class="consumption" cx="100" cy="100" clip-path="url(#cut)" r="50"></circle>
</svg>
在第二个中,当我在圆圈上使用平移指定其位置时,不再显示任何内容。
<svg>
<clipPath id="cut">
<rect width="100" height="100" x="100" y="50"></rect>
</clipPath>
<circle class="consumption" transform="translate(100,100)" clip-path="url(#cut)" r="50"></circle>
</svg>
为什么?
答案 0 :(得分:10)
因为变换也适用于clipPath。
如果clipPathUnits =“userSpaceOnUse”,则'clipPath'的内容表示引用'clipPath'元素时的当前用户坐标系中的值(即用户)通过'clip-path'属性引用'clipPath'元素的元素的坐标系。 如果未指定属性'clipPathUnits',则效果就像指定了'userSpaceOnUse'的值。
答案 1 :(得分:0)
您仍然可以像这样使用“ g”标签来使其正常工作。
<g clip-path="url(#cut)">
<circle class="consumption" transform="translate(100,100)" r="50"></circle>
</g>