我尝试使用 requestAnimFrame,但没有显着改进。
使用萤火虫探查器似乎缓慢的操作正在改变颜色
cellEl.style.color = br;
所以在这一刻,我发现的唯一解决方案是在 FF 上最小化调色板
// BRIGHTNESS0 is the MAX brightness value
// BRIGHTNESSSTEPS is the palette size
// i : 31 = n : BRIGHTNESS0
var i = Math.floor(n * 31 / BRIGHTNESS0);
// brightness inc = BRIGHTNESS0 / BRIGHTNESSSTEPS
var inc = 31 / BRIGHTNESSSTEPS;
i = Math.floor(Math.floor(i / inc) * inc);
var brHex = '#';
if (i < 16) {
var d = i * 16 + i;
brHex += '0' + Number(i).toString(16) + '0';
} else {
i -= 16
var o = Number(i).toString(16);
brHex += o + 'f' + o;
}
...
在 FF 上,我不使用 32 渐变,但使用更少,如果颜色没有改变,我会跳过style.color
分配。
var br = BRIGHTNESSTABLERGB[cell[1]];
if (cellEl.style.color != br)
changeBrightness(cellEl,br);
这种方式稍微好一点。还有什么建议吗?