123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <!doctype html>
- <html>
- <head>
- <title>Line Chart with Custom Tooltips</title>
- <script src="../Chart.js"></script>
- <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
- <style>
- #canvas-holder1 {
- width: 300px;
- margin: 20px auto;
- }
- #canvas-holder2 {
- width: 50%;
- margin: 20px 25%;
- }
- #chartjs-tooltip {
- opacity: 1;
- position: absolute;
- background: rgba(0, 0, 0, .7);
- color: white;
- padding: 3px;
- border-radius: 3px;
- -webkit-transition: all .1s ease;
- transition: all .1s ease;
- pointer-events: none;
- -webkit-transform: translate(-50%, 0);
- transform: translate(-50%, 0);
- }
- .chartjs-tooltip-key{
- display:inline-block;
- width:10px;
- height:10px;
- }
- </style>
- </head>
- <body>
- <div id="canvas-holder1">
- <canvas id="chart1" width="300" height="30" />
- </div>
- <div id="canvas-holder2">
- <canvas id="chart2" width="450" height="600" />
- </div>
- <div id="chartjs-tooltip"></div>
- <script>
- Chart.defaults.global.pointHitDetectionRadius = 1;
- Chart.defaults.global.customTooltips = function(tooltip) {
- var tooltipEl = $('#chartjs-tooltip');
- if (!tooltip) {
- tooltipEl.css({
- opacity: 0
- });
- return;
- }
- tooltipEl.removeClass('above below');
- tooltipEl.addClass(tooltip.yAlign);
- var innerHtml = '';
- for (var i = tooltip.labels.length - 1; i >= 0; i--) {
- innerHtml += [
- '<div class="chartjs-tooltip-section">',
- ' <span class="chartjs-tooltip-key" style="background-color:' + tooltip.legendColors[i].fill + '"></span>',
- ' <span class="chartjs-tooltip-value">' + tooltip.labels[i] + '</span>',
- '</div>'
- ].join('');
- }
- tooltipEl.html(innerHtml);
- tooltipEl.css({
- opacity: 1,
- left: tooltip.chart.canvas.offsetLeft + tooltip.x + 'px',
- top: tooltip.chart.canvas.offsetTop + tooltip.y + 'px',
- fontFamily: tooltip.fontFamily,
- fontSize: tooltip.fontSize,
- fontStyle: tooltip.fontStyle,
- });
- };
- var randomScalingFactor = function() {
- return Math.round(Math.random() * 100);
- };
- var lineChartData = {
- labels: ["January", "February", "March", "April", "May", "June", "July"],
- datasets: [{
- label: "My First dataset",
- fillColor: "rgba(220,220,220,0.2)",
- strokeColor: "rgba(220,220,220,1)",
- pointColor: "rgba(220,220,220,1)",
- pointStrokeColor: "#fff",
- pointHighlightFill: "#fff",
- pointHighlightStroke: "rgba(220,220,220,1)",
- data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()]
- }, {
- label: "My Second dataset",
- fillColor: "rgba(151,187,205,0.2)",
- strokeColor: "rgba(151,187,205,1)",
- pointColor: "rgba(151,187,205,1)",
- pointStrokeColor: "#fff",
- pointHighlightFill: "#fff",
- pointHighlightStroke: "rgba(151,187,205,1)",
- data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()]
- }]
- };
- window.onload = function() {
- var ctx1 = document.getElementById("chart1").getContext("2d");
- window.myLine = new Chart(ctx1).Line(lineChartData, {
- showScale: false,
- pointDot : true,
- responsive: true
- });
- var ctx2 = document.getElementById("chart2").getContext("2d");
- window.myLine = new Chart(ctx2).Line(lineChartData, {
- responsive: true
- });
- };
- </script>
- </body>
- </html>
|