Show Hide Series - More Faster
Example illustrates how you can fast up show/hide series
by mhardik
HTML
<script src="http://highcharts.com/js/testing.js"></script>
<div id="container" style="height: 400px"></div>
<button id="slow">Slow Toggle</button>
<button id="fast">Fast Toggle</button>
JavaScript
var group1 = [];
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
series: [
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [29.9, 71.5, 106.4, 129.2]},
{ color: 'green', data: [144.0, 176.0, 135.6, 148.5]},
{ data: [216.4, 194.1, 95.6, 54.4]}]
},
function(chart) {
$(chart.series).each(function(i, serie) {
if (serie.color == 'green') {
group1.push(i);
}
});
});
$("#fast").click(function() {
var _redraw = chart.redraw;
chart.redraw = function(){};
toggleSeries(this);
chart.redraw = _redraw;
chart.redraw();
logTimeEnd('fast')
});
$("#slow").click(function() {
logTimeStart();
toggleSeries(this);
logTimeEnd('slow');
});
function toggleSeries(context) {
if ($(context).hasClass("hideseries")) {
hs = true;
} else {
hs = false;
}
$(chart.series).each(function(idx, item) {
if (item.color == 'green') {
if (hs) {
item.show();
} else {
item.hide();
}
}
});
$(context).toggleClass("hideseries");
}
var lastTime;
function logTimeStart() {
lastTime = new Date();
}
function logTimeEnd(type) {
var nowTime = new Date();
var elapsed = nowTime - lastTime;
console.log(type + ': ' + elapsed);
}