ヒートマップグラデーションのストップ値としてさまざまな16進数のRRGGBBAAカラーがありますが、一部のストップに異なるアルファ値を設定してもコードの不透明度は変わらないことに気付きました。最後の2つを設定しても、常に同じビューが表示されます。 0.0の不透明度が何らかの理由で機能するため、アルファビットを00に設定します-。RRGGBBAA値は次のように記述されます。
0xaa00007f
(最後の2ビット、7fは不透明度0.5にする必要があります)
0xaa0000ff
(ffは1.0の不透明度です)
停止値を取得するsetGradientStops関数は次のようになります-これはヒートマップライブラリからのものであり、私のコードではありません-
setGradientStops: function(stops) {
var ctx = document.createElement('canvas').getContext('2d');
var grd = ctx.createLinearGradient(0, 0, 256, 0);
for (var i in stops) {
grd.addColorStop(i, 'rgba(' +
((stops[i] >> 24) & 0xFF) + ',' +
((stops[i] >> 16) & 0xFF) + ',' +
((stops[i] >> 8) & 0x7F) + ',' +
((stops[i] >> 0) & 0x7F) + ')');
}
ctx.fillStyle = grd;
ctx.fillRect(0, 0, 256, 1);
this.gradient = ctx.getImageData(0, 0, 256, 1).data;
}