为什么createRadialGradient不能在Firefox上运行?

时间:2011-10-16 12:57:45

标签: javascript firefox html5-canvas radial-gradients

我正在使用HTML5和JavaScript的canvas标签来访问画布方法和属性。

此代码适用于Chrome,但不适用于Firefox:http://jsfiddle.net/thirtydot/BD3xA/

有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

createRadialGradient适用于Firefox,但addColorStop不能完全正常工作 - 如果你传递透明度和颜色,会抛出异常。

例如,在创建径向渐变后:

var grad = ctx.createRadialGradient(centerX,centerY,outRadius,centerX,centerY,outRadius+pad);
var colorOut="rgba(100,200,100,0.7)";
grad.addColorStop(0,'rgba(0,0,0,0)');
grad.addColorStop(0.01,colorOut);

以上在chrome上很有用,但由于rgba颜色为0.7,因此无法在FF上使用。

所以,我使用类似的东西:

colorOut= ($.browser.mozilla)?'#D88':'rgba(200,100,100,0.7);';

这不会使渐变在FF上显得非常好,但是功能。

当然,您应该先缓存$ .browser.mozilla - 创建一个var IS_MOZILLA = $ .browser.mozilla;然后使用它(以便最小化类调用...因为在复杂的绘图调用中保存每个计算都很重要。)