X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph.js;h=40f1d11873c92ee3836e001fa169b98a9358a336;hb=255a9615d8f005600bea393c8bdb3c6f085f7a4c;hp=bc830b2b9b81793c18fd430dd411d964cd46fa4a;hpb=4131ea7dcb2d733f073e181c0734ef83f2b25268;p=dygraphs.git diff --git a/dygraph.js b/dygraph.js index bc830b2..40f1d11 100644 --- a/dygraph.js +++ b/dygraph.js @@ -1515,7 +1515,7 @@ Dygraph.prototype.findClosestRow = function(domX) { var l = points.length; for (var i = 0; i < l; i++) { var point = points[i]; - if (point === null) continue; + if (!Dygraph.isValidPoint(point)) continue; var dist = Math.abs(point.canvasx - domX); if (minDistX === null || dist < minDistX) { minDistX = dist; @@ -1547,7 +1547,7 @@ Dygraph.prototype.findClosestPoint = function(domX, domY) { var len = this.layout_.setPointsLengths[setIdx]; for (var i = 0; i < len; ++i) { var point = points[first + i]; - if (point === null) continue; + if (!Dygraph.isValidPoint(point)) continue; dx = point.canvasx - domX; dy = point.canvasy - domY; dist = dx * dx + dy * dy; @@ -1588,22 +1588,27 @@ Dygraph.prototype.findStackedPoint = function(domX, domY) { var len = this.layout_.setPointsLengths[setIdx]; if (row >= len) continue; var p1 = points[first + row]; + if (!Dygraph.isValidPoint(p1)) continue; var py = p1.canvasy; if (domX > p1.canvasx && row + 1 < len) { // interpolate series Y value using next point var p2 = points[first + row + 1]; - var dx = p2.canvasx - p1.canvasx; - if (dx > 0) { - var r = (domX - p1.canvasx) / dx; - py += r * (p2.canvasy - p1.canvasy); + if (Dygraph.isValidPoint(p2)) { + var dx = p2.canvasx - p1.canvasx; + if (dx > 0) { + var r = (domX - p1.canvasx) / dx; + py += r * (p2.canvasy - p1.canvasy); + } } } else if (domX < p1.canvasx && row > 0) { // interpolate series Y value using previous point var p0 = points[first + row - 1]; - var dx = p1.canvasx - p0.canvasx; - if (dx > 0) { - var r = (p1.canvasx - domX) / dx; - py += r * (p0.canvasy - p1.canvasy); + if (Dygraph.isValidPoint(p0)) { + var dx = p1.canvasx - p0.canvasx; + if (dx > 0) { + var r = (p1.canvasx - domX) / dx; + py += r * (p0.canvasy - p1.canvasy); + } } } // Stop if the point (domX, py) is above this series' upper edge @@ -1851,10 +1856,8 @@ Dygraph.prototype.setLegendHTML_ = function(x, sel_points) { Dygraph.prototype.animateSelection_ = function(direction) { var totalSteps = 10; var millis = 30; - if (this.fadeLevel === undefined) { - this.fadeLevel = 0; - this.animateId = 0; - } + if (this.fadeLevel === undefined) this.fadeLevel = 0; + if (this.animateId === undefined) this.animateId = 0; var start = this.fadeLevel; var steps = direction < 0 ? start : totalSteps - start; if (steps <= 0) {