Highcharts -禁止在拖动事件中拖动点

pxq42qpu  于 2022-11-10  发布在  Highcharts
关注(0)|答案(1)|浏览(293)

我是Highcharts的新手-似乎只有在系列上定义并启用了相应的dragDrop事件时,才能触发拖动事件。例如https://api.highcharts.com/highcharts/plotOptions.series.dragDrop
我如何抑制图表中实际移动的点?我试过设置allowPointSelect: false并禁用draggableX和draggableY,但这样做当然不会触发任何拖动事件。我也试过event.preventDefault,但没有成功
基本上,我希望让用户在折线图/面积图中从startX/Y拖动到endX/Y,并将结果显示给用户(我可以使用mouseOver成功地实现这一点--一个很好的特性!)

k75qkfdt

k75qkfdt1#

对于这样的功能,您不需要使用draggable-points模块。一个简单的自定义解决方案,带有十字线和动态添加/删除的绘图线就足够了。例如:

chart: {
    animation: false,
    events: {
      load: function() {
        const chart = this;
        this.series[0].points.forEach(point => {

          point.graphic.on('mousedown', function() {
            chart.draggedPoint = point;
            chart.xAxis[0].update({
              plotLines: [{
                width: 2,
                color: 'grey',
                dashStyle: 'ShortDash',
                value: point.x
              }]
            });
          });
        });

        document.body.addEventListener('mouseup', function() {
          chart.draggedPoint = null;
          chart.xAxis[0].update({
            plotLines: []
          });
        });
      }
    }
  }

现场演示:https://jsfiddle.net/BlackLabel/rsuj93at/
API引用:https://api.highcharts.com/highcharts/tooltip.formatter

相关问题