| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 | <!DOCTYPE HTML><html>	<head>		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">		<title>Highcharts Example</title>		<script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script>		<style type="text/css">.chart {    min-width: 320px;    max-width: 800px;    height: 220px;    margin: 0 auto;}</style><!-- http://doc.jsfiddle.net/use/hacks.html#css-panel-hack --><meta name="viewport" content="width=device-width, initial-scale=1" /><style>		</style>		<script type="text/javascript">/*The purpose of this demo is to demonstrate how multiple charts on the same page can be linkedthrough DOM and Highcharts events and API methods. It takes a standard Highcharts config with asmall variation for each data set, and a mouse/touch event handler to bind the charts together.*/$(function () {    /**     * In order to synchronize tooltips and crosshairs, override the     * built-in events with handlers defined on the parent element.     */    $('#container').bind('mousemove touchmove touchstart', function (e) {        var chart,            point,            i,            event;        for (i = 0; i < Highcharts.charts.length; i = i + 1) {            chart = Highcharts.charts[i];            event = chart.pointer.normalize(e.originalEvent); // Find coordinates within the chart            point = chart.series[0].searchPoint(event, true); // Get the hovered point            if (point) {                point.highlight(e);            }        }    });    /**     * Override the reset function, we don't need to hide the tooltips and crosshairs.     */    Highcharts.Pointer.prototype.reset = function () {        return undefined;    };    /**     * Highlight a point by showing tooltip, setting hover state and draw crosshair     */    Highcharts.Point.prototype.highlight = function (event) {        this.onMouseOver(); // Show the hover marker        this.series.chart.tooltip.refresh(this); // Show the tooltip        this.series.chart.xAxis[0].drawCrosshair(event, this); // Show the crosshair    };    /**     * Synchronize zooming through the setExtremes event handler.     */    function syncExtremes(e) {        var thisChart = this.chart;        if (e.trigger !== 'syncExtremes') { // Prevent feedback loop            Highcharts.each(Highcharts.charts, function (chart) {                if (chart !== thisChart) {                    if (chart.xAxis[0].setExtremes) { // It is null while updating                        chart.xAxis[0].setExtremes(e.min, e.max, undefined, false, { trigger: 'syncExtremes' });                    }                }            });        }    }    // Get the data. The contents of the data file can be viewed at    // https://github.com/highcharts/highcharts/blob/master/samples/data/activity.json    $.getJSON('http://www.hcharts.cn/datas/jsonp.php?filename=activity.json&callback=?', function (activity) {        $.each(activity.datasets, function (i, dataset) {            // Add X values            dataset.data = Highcharts.map(dataset.data, function (val, j) {                return [activity.xData[j], val];            });            $('<div class="chart">')                .appendTo('#container')                .highcharts({                    chart: {                        marginLeft: 40, // Keep all charts left aligned                        spacingTop: 20,                        spacingBottom: 20                    },                    title: {                        text: dataset.name,                        align: 'left',                        margin: 0,                        x: 30                    },                    credits: {                        enabled: false                    },                    legend: {                        enabled: false                    },                    xAxis: {                        crosshair: true,                        events: {                            setExtremes: syncExtremes                        },                        labels: {                            format: '{value} km'                        }                    },                    yAxis: {                        title: {                            text: null                        }                    },                    tooltip: {                        positioner: function () {                            return {                                x: this.chart.chartWidth - this.label.width, // right aligned                                y: -1 // align to title                            };                        },                        borderWidth: 0,                        backgroundColor: 'none',                        pointFormat: '{point.y}',                        headerFormat: '',                        shadow: false,                        style: {                            fontSize: '18px'                        },                        valueDecimals: dataset.valueDecimals                    },                    series: [{                        data: dataset.data,                        name: dataset.name,                        type: dataset.type,                        color: Highcharts.getOptions().colors[i],                        fillOpacity: 0.3,                        tooltip: {                            valueSuffix: ' ' + dataset.unit                        }                    }]                });        });    });});		</script>	</head>	<body><script src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script><div id="container"></div>	</body></html>
 |