我在2行中有6个图表,带有3个引导列网格。我正在尝试同步所有6个图表,但是如果我的图表处于垂直位置,则无法正常工作,但是必须将这些图表显示为2行(水平)。

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
            <script src="https://code.highcharts.com/stock/highstock.js"></script>
                    <script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<div id="container">
        <div class="row">
            <div class="col-md-4">
                <div id="container_1" style="height: 400px"></div>
            </div>
            <div class="col-md-4">
                <div id="container_2" style="height: 400px"></div>
            </div>
            <div class="col-md-4">
                <div id="container_3" style="height: 400px"></div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4">
                <div id="container_4" style="height: 400px"></div>
            </div>
            <div class="col-md-4">
                <div id="container_5" style="height: 400px"></div>
            </div>
            <div class="col-md-4">
                <div id="container_6" style="height: 400px"></div>
            </div>
        </div>
    </div>


同步无法水平进行。我已经看过这个link

但是在这种情况下,如果我设置了这个变量,我们必须设置chartX变量sync可以正常工作,但是不能正常工作。我已经在chartAA的docs中看到了,但是我无法理解应该设置哪些值才能正常工作

这是指向我的jsfiddle的链接
请告诉我如何使这些水平图同步,或者应设置什么值以使ChartX正常工作,因为响应能力正在改变宽度。

谢谢,

请增加JSFIDDLE结果框的宽度以成行显示图表。

最佳答案

不同之处在于您的图表之间存在差距。作为解决方案,您可以找到悬停在哪个图表列上并创建通用的event变量:

$('#container').bind('mousemove touchmove touchstart', function(e) {
    var chart,
        point,
        i,
        event;

    for (i = 0; i < 3; i++) {
        chart = Highcharts.charts[i];
        if (chart && chart.options.chart.isSynced) {
            // Find coordinates within the chart
            event = chart.pointer.normalize(e.originalEvent);

            if (event.chartX > 0 && event.chartX < chart.chartWidth) {
                Highcharts.charts.forEach(function(ch) {
                    point = ch.series[0].searchPoint(event, true);

                    if (point) {
                        point.highlight(e);
                    }
                });

                break;
            }
        }
    }
});


现场演示:https://jsfiddle.net/BlackLabel/pysx12kg/

09-25 18:33
查看更多