plotLine drag xAxis event in line chart - Javascript highcharts

Javascript examples for highcharts:Line Chart

Description

plotLine drag xAxis event in line chart

Demo Code

ResultView the demo in separate window

<html>
   <head> 
      <title>Highcharts Demo</title> 
      <meta name="viewport" content="width=device-width, initial-scale=1"> 
      <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
      <script type="text/javascript">
$(function () {/*from w ww.  j  a  v  a2  s  .  c  om*/
    var line,
    clickX,
    clickY;
    var start = function (e) {
        $(document).bind({
            'mousemove.line': step,
                'mouseup.line': stop
        });
        clickX = e.pageX - line.translateX;
        //clickY = e.pageY - line.translateY; //uncomment if plotline should be also moved vertically
    }
    var step = function (e) {
        line.translate(e.pageX - clickX, e.pageY - clickY)
    }
    var stop = function () {
        $(document).unbind('.line');
    }
    $('#container').highcharts({
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
            plotLines: [{
                color: '#FF0000',
                width: 5,
                value: 3
            }]
        },
        series: [{
            data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
        }]
    }, function (chart) {
        console.log(chart.xAxis[0].plotLinesAndBands[0]);
        line = chart.xAxis[0].plotLinesAndBands[0].svgElem.attr({
            stroke: 'yellow'
        })
            .css({
            'cursor': 'pointer'
        })
            .translate(0, 0)
            .on('mousedown', start);
    });
});

      </script> 
   </head> 
   <body> 
      <script src="https://code.highcharts.com/highcharts.js"></script> 
      <div id="container" style="height: 400px"></div>  
   </body>
</html>

Related Tutorials