根据滑块输入更新/更新plotBands值

问题描述 投票:0回答:1

我正在尝试使用页面上的滑块动态更新我的 HighchartsplotBands。我希望

to
from
都附加到滑块值,并在用户拖动滑块时在画布上动态更新。这可能吗?

HTML:

<script src="https://code.highcharts.com/highcharts.js"></script>

<div id="container"></div>
<!-- <input id="range" type="range" /> -->



<div id="slider">
    <input class="bar" type="range" id="range-input" min="1" max="25" value="1"/>
    <span class="highlight"></span>
    <output id="range-value">1</output>
</div>

JS:


 var rangeInput = document.getElementById("range-input")
 var rangeValue = document.getElementById("range-value")

 rangeInput.oninput = rangeOutput
 
 function rangeOutput() {
   rangeValue.innerText = rangeInput.value
 }
 
 let bla = rangeInput.value;

Highcharts.chart('container', {
    chart: {
        marginTop: 5
    },
    title: {
        text: 'Flats sold per month'
    },

    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    yAxis: {
plotBands: [{
                from: bla,
                to: 5,
                color: 'yellow'
            }],
        title: {
            text: 'Flats'
        }
        
    },

    series: [{
        data: [1, 3, 5, 2, 3, 9, 6, 7, 3, 5, 4, 3]
    }]
});

我遇到的问题是实时更新图表。如果我想更新数据,我可以看到有一些方法可以做到这一点,但我不确定如何为plotBands 做到这一点。

javascript highcharts
1个回答
0
投票

我们可以使用chart.update
首先,我们将您的图表设置为

chart

const chart = Highcharts.chart(/** **/);

而且,现在我们在

chart.update
函数中使用
rangeOutput

chart.update({
  yAxis: {
    plotBands: [
      {
        from: rangeInput.value,
        to: 5,
        color: "yellow",
      },
    ],
    title: {
      text: "Flats",
    },
  },
});

这是最终代码的CodePen

© www.soinside.com 2019 - 2024. All rights reserved.