单击图表时尝试生成弹出窗口。弹出窗口是关闭按钮

时间:2016-01-08 13:03:30

标签: javascript jquery html angularjs highcharts

当用户点击一个栏时,我正试图在highcharts中弹出一个弹出窗口。 到目前为止,我有一些代码,当用户点击一个条形图时,它会淡化所有其他条形图。我想要选中的栏在这个栏上方生成一个小弹出

enter image description here

当选择关闭时,它应突出显示该栏并将所有栏恢复到正常状态。

这是我的代码

的javascript

$(function() {
$('#container4').highcharts({
    chart: {
        type: 'column',
        events: {
            click: function(e) {
                console.log(e);
            },
            selection: function(e) {
                console.log(e);
            }
        }
    },
    title: {
        text: ''
    },
    legend: {
        enabled: false
    },
    exporting: {
        enabled: false
    },
    credits: {
        enabled: false
    },
    xAxis: {
        gridLineColor: '',
        labels: {
            enabled: false
        }
    },
    yAxis: {
        title: {
            text: 'Fruit'
        },
        visible: false
    },
    credits: {
        enabled: false
    },
    plotOptions: {
        /*series: {
            allowPointSelect: true,
            states: {
                select: {
                    color: 'blue',
                }
            }
        },*/
        column: {
            stacking: 'normal',
        }
    },
    series: [{
        name: '',
        data: [-40, -60, -70, -80, -90, -100, -100, -100, -100, -100, -100],
        threshold: 0,
        color: '#E0E0E0 ',
        enableMouseTracking: false,
    }, {
        name: '',
        data: [-60, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50],
        threshold: 0,
        color: 'green',
        negativeColor: 'red',
    }, ]
});
 });

$(document).on('click', '.highcharts-tracker rect', function() {
var elm = $(this);
if (!elm.attr('class')) {
    $('.highcharts-tracker rect').removeAttr('class').css('opacity', 0.5);

    elm.attr('class', 'active').css('opacity', 1);
} else {
    $('.highcharts-tracker rect').removeAttr('class').css('opacity', 1);
}
});

CSS

.highcharts-series rect {
 transition:all .3s ease;
}

HTML

<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<div id="container4"></div>

1 个答案:

答案 0 :(得分:2)

$(function() {
  $('#container4').highcharts({
    chart: {
      type: 'column',
      events: {
        click: function(e) {
          console.log(e);
        },
        selection: function(e) {
          console.log(e);
        }
      }
    },
    title: {
      text: ''
    },
    legend: {
      enabled: false
    },
    exporting: {
      enabled: false
    },
    credits: {
      enabled: false
    },
    xAxis: {
      gridLineColor: '',
      labels: {
        enabled: false
      }
    },
    yAxis: {
      title: {
        text: 'Fruit'
      },
      visible: false
    },
    credits: {
      enabled: false
    },
    plotOptions: {
      /*series: {
      allowPointSelect: true,
      states: {
      select: {
      color: 'blue',
      }
      }
      },*/
      column: {
        stacking: 'normal',
      }
    },
    series: [{
      name: '',
      data: [-40, -60, -70, -80, -90, -100, -100, -100, -100, -100, -100],
      threshold: 0,
      color: '#E0E0E0 ',
      enableMouseTracking: false,
    }, {
      name: '',
      data: [-60, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50],
      threshold: 0,
      color: 'green',
      negativeColor: 'red',
    }, ]
  });
});

$(document).on('click', '.highcharts-tracker rect', function() {
  var elm = $(this);
  if (!elm.attr('class')) {
    $('.highcharts-tracker rect').removeAttr('class').css('opacity', 0.5);
    elm.attr('class', 'active').css('opacity', 1);

    $('#pointer').show().
    offset({
      top: elm.offset().top - 30,
      left: elm.offset().left + 10
    })

  }
});

$('#pointer').click(function() {
  $('.highcharts-tracker rect').removeAttr('class').css('opacity', 1);
  $(this).hide()
})
.highcharts-series rect {
  transition: all .3s ease;
}

#pointer {
  height: 30ph;
  width: 10px;
  display: noone;
  background-color: blue;
}
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<div id="container4"></div>
<div id="pointer">x</div>