Почему createRadialGradient не работает в Firefox? - PullRequest
0 голосов
/ 16 октября 2011

Я работаю с тэгом canvas из HTML5 и JavaScript для доступа к методам и свойствам canvas.

Этот код работает в Chrome, но не работает в Firefox: http://jsfiddle.net/thirtydot/BD3xA/.

Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 14 июля 2012

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, но не работает на FF из-за 0,7 в цвете rgba.

Итак, я использую что-то вроде:

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

Это не делает градиенты выглядящими так хорошо на FF, но работает.

Конечно, вы должны кешироватьчто раньше $ .browser.mozilla - сделайте переменную IS_MOZILLA = $ .browser.mozilla;а затем просто используйте это (чтобы минимизировать вызовы классов ... так как важно сохранять все вычисления в сложных вызовах чертежей).

...