我正在开发一个将D3与AngularJS指令集成的D3库,名为AngularD3。最近的一个指令允许生成可以绑定到数据并动态更新的渐变。这在除Firefox之外的所有浏览器中都有效。但是,如果我将输出的SVG复制/粘贴到类似JSFiddle的东西中,它就可以工作,因此在静态情况下它很好。
这可能是Firefox处理SVG动态更新的限制/错误吗?
这里有一个演示页面,您可以在Chrome和Safari中看到它工作,但在Firefox中无法工作:
最近在IE 10和11中测试了这个,但它们也不起作用。
这可能是Firefox处理SVG动态更新的限制/错误吗?
这里有一个演示页面,您可以在Chrome和Safari中看到它工作,但在Firefox中无法工作:
https://wealthbar.github.io/angular-d3/
这段代码可通过Github存储库获得。
D3能够使用基本相同的代码创建适用于Firefox的渐变。您可以在Mike的示例中看到这一点。到目前为止,我唯一发现的区别是linearGradient的动态更新。
这是从Firefox直接复制的SVG<defs>
部分,以供参考(已格式化以便阅读):
<defs>
<linearGradient y2="100%" y1="0%" x2="100%" x1="0%" id="gradient">
<stop offset="0%" stop-color="#098aae" stop-opacity="0.6"></stop>
<stop offset="100%" stop-color="#684684" stop-opacity="0.9"></stop>
</linearGradient>
</defs>
最近在IE 10和11中测试了这个,但它们也不起作用。