X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph.js;h=bc830b2b9b81793c18fd430dd411d964cd46fa4a;hb=470d42e152bd816333bb9879731c77340daaf7c1;hp=298f64bb0e70aa764442bac1878d0dc01bdd9734;hpb=2a02e5dde7f3727c1735761b84ca41c0f241dcaf;p=dygraphs.git diff --git a/dygraph.js b/dygraph.js index 298f64b..bc830b2 100644 --- a/dygraph.js +++ b/dygraph.js @@ -187,7 +187,7 @@ Dygraph.dateAxisFormatter = function(date, granularity) { Dygraph.DEFAULT_ATTRS = { highlightCircleSize: 3, highlightSeriesOpts: null, - highlightSeriesBackgroundFade: 0.5, + highlightSeriesBackgroundAlpha: 0.5, labelsDivWidth: 250, labelsDivStyles: { @@ -1021,7 +1021,11 @@ Dygraph.prototype.createStatusMessage_ = function() { div.className = "dygraph-legend"; for (var name in messagestyle) { if (messagestyle.hasOwnProperty(name)) { - div.style[name] = messagestyle[name]; + try { + div.style[name] = messagestyle[name]; + } catch (e) { + this.warn("You are using unsupported css properties for your browser in labelsDivStyles"); + } } } this.graphDiv.appendChild(div); @@ -1513,9 +1517,10 @@ Dygraph.prototype.findClosestRow = function(domX) { var point = points[i]; if (point === null) continue; var dist = Math.abs(point.canvasx - domX); - if (minDistX !== null && dist >= minDistX) continue; - minDistX = dist; - idx = i; + if (minDistX === null || dist < minDistX) { + minDistX = dist; + idx = i; + } } return this.idxToRow_(idx); }; @@ -1546,11 +1551,12 @@ Dygraph.prototype.findClosestPoint = function(domX, domY) { dx = point.canvasx - domX; dy = point.canvasy - domY; dist = dx * dx + dy * dy; - if (minDist !== null && dist >= minDist) continue; - minDist = dist; - closestPoint = point; - closestSeries = setIdx; - idx = i; + if (minDist === null || dist < minDist) { + minDist = dist; + closestPoint = point; + closestSeries = setIdx; + idx = i; + } } } var name = this.layout_.setNames[closestSeries]; @@ -1601,9 +1607,10 @@ Dygraph.prototype.findStackedPoint = function(domX, domY) { } } // Stop if the point (domX, py) is above this series' upper edge - if (setIdx > 0 && py >= domY) break; - closestPoint = p1; - closestSeries = setIdx; + if (setIdx == 0 || py < domY) { + closestPoint = p1; + closestSeries = setIdx; + } } var name = this.layout_.setNames[closestSeries]; return { @@ -1885,7 +1892,7 @@ Dygraph.prototype.updateSelection_ = function(opt_animFraction) { var ctx = this.canvas_ctx_; if (this.attr_('highlightSeriesOpts')) { ctx.clearRect(0, 0, this.width_, this.height_); - var alpha = this.attr_('highlightSeriesBackgroundFade'); + var alpha = 1.0 - this.attr_('highlightSeriesBackgroundAlpha'); if (alpha) { // Activating background fade includes an animation effect for a gradual // fade. TODO(klausw): make this independently configurable if it causes @@ -1936,11 +1943,15 @@ Dygraph.prototype.updateSelection_ = function(opt_animFraction) { var circleSize = this.attr_('highlightCircleSize', pt.name); var callback = this.attr_("drawHighlightPointCallback", pt.name); + var color = this.plotter_.colors[pt.name]; if (!callback) { callback = Dygraph.Circles.DEFAULT; } + ctx.lineWidth = this.attr_('strokeWidth', pt.name); + ctx.strokeStyle = color; + ctx.fillStyle = color; callback(this.g, pt.name, ctx, canvasx, pt.canvasy, - this.plotter_.colors[pt.name], circleSize); + color, circleSize); } ctx.restore();