我有一个看起来像这样的SVG:
<svg ...>
<rect id="clipShape" width="500" height="500"></rect>
<g id="content" clip-path="url(#clip)">
<!-- some content -->
</g>
<clipPath id="clip">
<use xlink:href="#clipShape"></use>
</clipPath>
</svg>
我需要对#clipSource
进行调整,例如在SVG的生命周期中更改width
和height
。但是要这样做:
d3.select('#clipShape').attr({ height: "200", width: "200" });
将破坏Safari中的剪辑。 #content
将完全隐藏,就像clipPath
无效一样。我可以通过不在use
命名空间下设置href
xlink
来强制执行类似行为。
我已在this fiddle中捕获了该问题。我在Chrome,FF,Opera或IE11中没有看到这个问题。
问题:
答案 0 :(得分:1)
据我所知,这是WebKit中的一个错误,小提琴在最新的夜晚(r180500)失败了。我reported the bug。
要解决此问题,我将#clipShape
克隆到clipPath
- 当我需要更改#clipShape
的任何属性时,根据需要重复此操作。