コードのこの作品は、値を持つマップからすべてのポイントを取り、白にそれらをフェードアウト:
var points = AccessMap.series[0].points,
iterations = 30,
iterationInterval = 20;
points.forEach(function(p) {
if (!p.isNull) {
var rgb = p.color.split(',').map((s) => Number(s.replace(/\D/g, ''))), // convert from string to an array of numbers: [r, g, b]
steps = rgb.map((c) => Math.round((255 - c)/iterations)); // used to increment above values at each iteration
// launch animation
for (var i = 0; i < iterations; i++) {
setTimeout(function(_i, _rgb, _steps) {
if (p.graphic) {
// compute value for fill
var fill = 'rgb(' + _rgb.map(function(c, j) {
var val = c + _steps[j] * (_i + 1);
return val > 255 ? 255 : val;
}).join(',') + ')';
// step may not be precise - make sure that final color is always white
if (_i + 1 === iterations) {
fill = 'white'
}
p.graphic.attr({
fill: fill
});
}
}, i * iterationInterval, i, rgb.slice(), steps.slice());
}
}
});
ライブ作業例:https://jsfiddle.net/kkulig/kupyu65w/
それはのためにHighcharts Element.attr()
機能を使用しています設定色(http://api.highcharts.com/class-reference/Highcharts.SVGElement#attr)
同様に、フェードイン機能を作成することができます。最初はすべての点が白であることを確認してください。
jQuery fadeOut
要素の不透明度を0に下げるため、この場合はポイントの下の背景が灰色の色で表示されるため、関数はここでの解決方法ではありません。
ありがとう! – Moss