From: Tanner Linsley Date: Fri, 15 May 2015 23:03:51 +0000 (-0600) Subject: Line Chart label hoverMode & tooltips X-Git-Tag: v2.0-alpha~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e58421a08ae1a640d79f38a6966804ff62dcd50f;p=thirdparty%2FChart.js.git Line Chart label hoverMode & tooltips --- diff --git a/samples/line.html b/samples/line.html index 8e5968c48..b3d6c8534 100644 --- a/samples/line.html +++ b/samples/line.html @@ -47,7 +47,8 @@ window.onload = function(){ var ctx = document.getElementById("canvas").getContext("2d"); window.myLine = new Chart(ctx).Line(lineChartData, { - responsive: true + responsive: true, + hoverMode: 'label' }); }; diff --git a/src/Chart.Core.js b/src/Chart.Core.js index f0d8e2d1f..93b7deb5e 100755 --- a/src/Chart.Core.js +++ b/src/Chart.Core.js @@ -1009,7 +1009,7 @@ for (var datasetIndex = 0; datasetIndex < this.data.datasets.length; datasetIndex++) { for (elementIndex = 0; elementIndex < this.data.datasets[datasetIndex].metaData.length; elementIndex++) { - if (this.data.datasets[datasetIndex].metaData[elementIndex].inRange(eventPosition.x,eventPosition.y)){ + if (this.data.datasets[datasetIndex].metaData[elementIndex].inGroupRange(eventPosition.x,eventPosition.y)){ helpers.each(this.data.datasets, datasetIterator); } } @@ -1190,10 +1190,14 @@ Chart.Point = Chart.Element.extend({ - inRange: function(chartX,chartY){ + inRange: function(mouseX,mouseY){ var vm = this._vm; var hoverRange = vm.hoverRadius + vm.radius; - return ((Math.pow(chartX - vm.x, 2)+Math.pow(chartY - vm.y, 2)) < Math.pow(hoverRange,2)); + return ((Math.pow(mouseX - vm.x, 2)+Math.pow(mouseY - vm.y, 2)) < Math.pow(hoverRange,2)); + }, + inGroupRange: function(mouseX){ + var vm = this._vm; + return (Math.pow(mouseX-vm.x, 2) < Math.pow(vm.radius + this.hoverRadius,2)); }, tooltipPosition : function(){ var vm = this._vm; diff --git a/src/Chart.Line.js b/src/Chart.Line.js index 9c118a56c..568f1097d 100644 --- a/src/Chart.Line.js +++ b/src/Chart.Line.js @@ -225,6 +225,8 @@ // Hover animations + this.tooltip.pivot(); + if(!this.animating){ var changed; @@ -239,7 +241,6 @@ (this.lastActive.length && !this.active.length)|| (this.lastActive.length && this.active.length && changed)){ - this.tooltip.pivot(); this.stop(); this.render(this.options.hoverAnimationDuration); }