强制刷新SVG渐变
Force refresh of SVG gradient
我有一个SVG,需要在页面加载后动态修改。
一些元素使用fill="currentColor"
,而另一些元素使用梯度填充,该梯度填充在其stop
元素中使用stop-color="currentColor"
。其想法是,我应该能够简单地更改父SVG的color
属性,并且所有子元素也应该自动更改颜色。
这对于使用fill="currentColor"
的元素非常有效,但渐变填充的元素没有察觉到变化。
我能做些什么来强制刷新吗?
https://jsfiddle.net/chrisAtFundrise/bb9c8gnh/
这可能是webkit
错误!由于linearGradient
元素在defs
元素中,并且您在未继承的stop
元素上使用了currentColor
。您还可以针对linearGradient
子级<stop>
元素stop-color
属性。
https://jsfiddle.net/bb9c8gnh/10/
$("#button").on("click", function() {
$("svg").attr({color: "blue"});
$("svg linearGradient stop").eq(0).attr({"stop-color": "blue", offset:"100%"});
$("svg linearGradient stop").eq(1).attr({"stop-color": "blue"});
});
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何更改<svg>标记为<img>用js标记
- 锚点元素不't使用svg时,请打开EDGE上的href
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 使用onclick绘制SVG路径
- SVG/JavaScript:尝试选择和更改多边形点
- 顺时针旋转Svg元件
- 禁用SVG拖动
- 在SVG地图上添加水的渐变,就像在谷歌地图(PHP/JS)中一样
- 使用 Snap.svg 导入 SVG 时不会显示渐变
- 动态将线性渐变设置为 Google 地图 SVG 路径图标
- 生成渐变 css / svg 背景
- 强制刷新SVG渐变
- 渐变基于对象的d3.svg.圆弧图(不重画)
- 在IE9上基于JavaScript的SVG渐变操作
- SVG操纵渐变填充颜色
- 当HTML页面中有BASE标记时,SVG渐变变为黑色
- 沿着SVG路径动画SVG渐变
- 作为字符串(织物.js)加载的SVG没有渐变