更新链接形状时,Safari中的SVG clipPath与USE断开
SVG clipPath with USE breaking in Safari when updating linked shape
我有一个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>
我需要在SVG的整个生命周期中对#clipSource
进行调整,例如更改width
和height
。然而,例如:
d3.select('#clipShape').attr({ height: "200", width: "200" });
将中断Safari中的剪辑。#content
将被完全隐藏,就好像clipPath
无效一样。我可以通过不在xlink
命名空间下设置use
href
来强制执行类似的行为。
我已经掌握了这个问题。我在Chrome、FF、Opera或IE11中没有看到这个问题。
问题:
- 我修改链接形状是不是很粗鲁
- 如果是,这是Safari/WebKit中已知的错误吗
- 有没有想过变通办法
据我所知,这是WebKit中的一个错误,fiddle在最近的夜间(r180500)中失败。我已经报告了这个错误。
为了解决这个问题,我将#clipShape
克隆到clipPath
中——当我需要更改#clipShape
的任何属性时,根据需要重复此操作。
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何更改<svg>标记为<img>用js标记
- 锚点元素不't使用svg时,请打开EDGE上的href
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 使用onclick绘制SVG路径
- SVG/JavaScript:尝试选择和更改多边形点
- 顺时针旋转Svg元件
- 禁用SVG拖动
- 在select元素中显示highchart dashstyle(svg)
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 缩放Raphael/SVG容器以适应所有内容
- JavaScript-动态SVG-onload属性-未触发事件
- 设置动画时,SVG/Raphael大圆圈会变形
- 使用SVG和JavaScript创建波浪动画
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 更新链接形状时,Safari中的SVG clipPath与USE断开
- AngularJS应用中的Svg clipPath, url为hashbang模式
- 浏览器渲染svg<clipPath>至<剪辑路径>
- Chrome不尊重svg元素"clippath"的驼色大小写