2012-04-28 59 views
5

我在这里创造了SVG图形看出:我怎么会提出一个SVG图案元素

<pattern id="t" height="20" width="20" patternUnits="userSpaceOnUse" overflow="visible"> 
    <ellipse cx="0" cy="0" rx="20" ry="20" fill="white"/> 
    <ellipse cx="5" cy="5" rx="15" ry="15" fill="yellow"/> 
    <ellipse cx="10" cy="10" rx="10" ry="10" fill="blue"/> 
    <ellipse cx="15" cy="15" rx="5" ry="5" fill="red"/> 
</pattern> 

然后在我的脚本中,我创建了一个使用模式的椭圆。问题是,当我移动椭圆时,图案停留在它后面,而不是随椭圆移动。

如何配置模式以保持元素?

回答

3

我相信你需要将patternUnits更改为“objectBoundingBox”与userSpaceOnUse。这应该为你解决问题。

更新:

这个答案是不正确的 - patternUnits应该对图案被摆出来,只有它的尺寸没有影响(用户空间单位对外接矩形框的单位)。 patternContentUnits是要设置为“objectBoundingBox”的属性 - 请注意,如果更改边界框的大小,这将随后缩放模式。如果您不希望发生这种情况,那么您需要在模式中使用viewbox属性 - 这可能是获得您可能要查找的结果的正确方法(固定大小模式,相对于其边界框定位)

(另请注意,将溢出到明显的效果“不确定”的渲染根据规范又名 - 要不要的东西),您需要使用patternContentUnits

+0

这似乎使模式只显示在一个特定的地方,但它仍然不会随着对象移动。 – fishpen0 2012-04-28 01:32:26

+0

原来,这是一个Firefox的问题,你是正确的毕竟。 – fishpen0 2012-04-29 05:46:00

相关问题