Highcharts Demo

author(s): Torstein Hønsi

by Black Label

HTML

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<script src="https://code.highcharts.com/stock/modules/export-data.js"></script>

<div id="container" style="height: 400px; min-width: 310px"></div>

CSS

.highcharts-container rect,
.highcharts-container text,
.highcharts-container path {
  transition: opacity 1s;
}

.highcharts-container .fade-in {
  opacity: 1;
}

.highcharts-container .fade-out {
  opacity: 0;
}

JavaScript

function showTooltip(xAxis, event) {
  var chart = xAxis.chart,
    nav = chart.navigator,
    leftTooltip,
    rightTooltip;

  nav.tooltips = nav.tooltips || [];
  leftTooltip = nav.tooltips[0];
  rightTooltip = nav.tooltips[1];

  // Create:
  if (!leftTooltip) {
    nav.tooltips[0] = leftTooltip = chart.renderer
      .label('', 0, 0, 'callout')
      .attr({
        fill: 'rgba(247,247,247,0.85)',
        'stroke-width': 1,
        stroke: '#333333',
        padding: 3,
        r: 3,
        zIndex: 6,
        align: 'center'
      })
      .css({
        color: '#333333',
        fontSize: '10px'
      })
      .add();
  }

  if (!rightTooltip) {
    nav.tooltips[1] = rightTooltip = chart.renderer
      .label('', 0, 0, 'callout')
      .attr({
        fill: 'rgba(247,247,247,0.85)',
        'stroke-width': 1,
        stroke: '#333333',
        padding: 3,
        r: 3,
        zIndex: 6,
        align: 'center'
      })
      .css({
        color: '#333333',
        fontSize: '10px'
      })
      .add();
  }

  // Update text and position:
  leftTooltip.show().attr({
    x: nav.left + parseInt(nav.zoomedMin),
    y: nav.top - 25,
    text: Highcharts.dateFormat('%d-%m-%Y', xAxis.min),
    anchorX: nav.left + parseInt(nav.zoomedMin),
    anchorY: nav.top,
  });

  rightTooltip.show().attr({
    x: nav.left + parseInt(nav.zoomedMax),
    y: nav.top - 25,
    text: Highcharts.dateFormat('%d-%m-%Y', xAxis.max),
    anchorX: nav.left + parseInt(nav.zoomedMax),
    anchorY: nav.top
  });
}

function hideTooltip(chart) {
  if (chart && chart.navigator) {
    (chart.navigator.tooltips || []).forEach(
      function(tooltip) {
        tooltip.hide();
      }
    );
  }
}

Highcharts.addEvent(document, 'mouseup', function() {
  Highcharts.charts.forEach(function(chart) {
    hideTooltip(chart);
  });
});

$.getJSON('https://www.highcharts.com/samples/data/aapl-c.json', function(data) {
  // Create the chart
  Highcharts.stockChart('container', {


   ...