Firefox 铬画布线性渐变!=线性梯度

Firefox 铬画布线性渐变!=线性梯度,firefox,html,google-chrome,canvas,gradient,Firefox,Html,Google Chrome,Canvas,Gradient,好吧,问题是下一个: canvas = GreenCanvas.get(0).getContext('2d'); grad = canvas.createLinearGradient(0,0,255,0); grad.addColorStop(0, 'rgb('+r+','+0+','+b+')'); grad.addColorStop(1, 'rgb('+r+','+255+','+b+')'); canvas.fillStyle = grad; canva

好吧,问题是下一个:

   canvas = GreenCanvas.get(0).getContext('2d');
   grad = canvas.createLinearGradient(0,0,255,0);
   grad.addColorStop(0, 'rgb('+r+','+0+','+b+')');
   grad.addColorStop(1, 'rgb('+r+','+255+','+b+')');
   canvas.fillStyle = grad;
   canvas.fillRect(0,0,256,34);
256像素。例如,从rgb(0,0,0)到rgb(0255,0)

铬6.0.472:梯度(0,0,0)(0,1,0)(0,2,0)(0,3,0)(0,4,0)。。。(0255,0)

Firefox 3.6.6:渐变(0,0,0)(0,0,0)(0,1,0)(0,2,0)。。。(0255,0)


我想看看是谁在firefox中编写了渐变功能的程序。但无论如何,我想知道这是否是一个真正的问题,或者在firefox中梯度就是这样做的。或者,如果存在另一种方式,可以在不使用太多内存的情况下进行出色的渐变。

众所周知,Chrome目前在画布渐变方面存在问题

我向Chrome提交了一个bug,因为hixie(规范编写者)有多少测试在Chrome上失败了

简而言之,您不能创建“grad”变量。你必须直接设置它

这项工作:

   var context = document.getElementsByTagName('canvas')[0].getContext('2d');
   context.fillStyle = context.createLinearGradient(0, 0, 500, 300);
   context.fillStyle.addColorStop(0, '#0000ff');
   context.fillStyle.addColorStop(1, '#ff00ff');
   context.fillRect(0, 0, 500, 300);
这不起作用,即使他们应该做同样的事情:

   var context = document.getElementsByTagName('canvas')[0].getContext('2d');
   var g = context.createLinearGradient(0, 0, 500, 300);
   g.addColorStop(0, '#0000ff');
   g.addColorStop(1, '#ff00ff');
   context.fillStyle = g;
   context.fillRect(0, 0, 500, 300);
现在,就用第一种方法来做。

这是九月初提交的bug报告


我不知道你在说什么问题出在哪里?变量r和b来自哪里?你有两种浏览器的屏幕截图吗?问题是在firefox中,当你从0..255色数开始尝试时,它会重复第一个MMM,但问题是firefox没有chrome。不管怎么说,我会试着这样做,看看有什么不同,明天我会答应回答(现在已经晚了)