var thisId = ++this.animateId;
var that = this;
+ var cleanupIfClearing = function() {
+ // if we haven't reached fadeLevel 0 in the max frame time,
+ // ensure that the clear happens and just go to 0
+ if (that.fadeLevel !== 0 && direction < 0) {
+ that.fadeLevel = 0;
+ that.clearSelection();
+ }
+ };
Dygraph.repeatAndCleanup(
function(n) {
// ignore simultaneous animations
that.updateSelection_(that.fadeLevel / totalSteps);
}
},
- steps, millis, function() {});
+ steps, millis, cleanupIfClearing);
};
/**
};
/**
- * Changes the visiblity of a series.
+ * Changes the visibility of one or more series.
*
- * @param {number} num the series index
+ * @param {number|number[]} num the series index or an array of series indices
* @param {boolean} value true or false, identifying the visibility.
*/
Dygraph.prototype.setVisibility = function(num, value) {
var x = this.visibility();
- if (num < 0 || num >= x.length) {
- console.warn("invalid series number in setVisibility: " + num);
- } else {
- x[num] = value;
- this.predraw_();
+
+ if (num.constructor !== Array) num = [num];
+
+ for (var i = 0; i < num.length; i++) {
+ if (num[i] < 0 || num[i] >= x.length) {
+ console.warn("invalid series number in setVisibility: " + num[i]);
+ } else {
+ x[num[i]] = value;
+ }
}
+
+ this.predraw_();
};
/**