为什么Highcharts <div>元素会占用整个页面?</div>

时间:2013-04-26 19:28:07

标签: javascript jquery highcharts

我正在尝试在我的网页上嵌入一个小图表(使用Highcharts)。我提供了一个我正在尝试做的例子。当页面加载时,图表会占用整个页面,覆盖mainDiv中的内容(我没有在此处包含)。我试过修改分区和图表的尺寸。我还查看了'chart'的'renderTo'参数,并尝试将其渲染为对象引用。

有谁知道可能导致此问题的原因?我在图表中错过了一个关键参数吗?或者我错误地编写了代码?感谢。

<!-- mainDiv is what's getting overwritten -->
<div id="mainDiv"></div>
<div id="container" style="width:10px; height:10px;"></div>

<script>
    $(function () { 
        $('#container').highcharts({
            chart: {
                type: 'bar'
            },
            title: {
                text: 'Fruit Consumption'
            },
            xAxis: {
                categories: ['Apples', 'Bananas', 'Oranges']
            },
            yAxis: {
                title: {
                    text: 'Fruit eaten'
                }
            },
            series: [{
                name: 'Jane',
                data: [1, 0, 4]
            }, {
                name: 'John',
                data: [5, 7, 3]
            }]
        });
    });
    </script>

2 个答案:

答案 0 :(得分:1)

我通过将我的元素的id属性从“容器”更改为“包含”来修复此问题(显然将以前引用“容器”的任何代码更改为仅引用“包含”)。

无论出于何种原因,这解决了我的问题,尽管我仍然不太清楚为什么。也许“容器”是Highcharts使用的关键字。

最终代码如下所示:

<!-- mainDiv is what's getting overwritten -->
<div id="mainDiv"></div>
<div id="contain" style="width:10px; height:10px;"></div>

<script>
    $(function () { 
        $('#contain').highcharts({
            chart: {
                type: 'bar'
            },
            title: {
                text: 'Fruit Consumption'
            },
            xAxis: {
                categories: ['Apples', 'Bananas', 'Oranges']
            },
            yAxis: {
                title: {
                    text: 'Fruit eaten'
                }
            },
            series: [{
                name: 'Jane',
                data: [1, 0, 4]
            }, {
                name: 'John',
                data: [5, 7, 3]
            }]
        });
    });
    </script>

答案 1 :(得分:0)

不确定这是否有效,但您是否尝试过renderTo:'divname'选项......有点像......

var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        type: 'bar'
    },
    title: {
        text: 'Fruit Consumption'
    },
    xAxis: {
        categories: ['Apples', 'Bananas', 'Oranges']
    },
    yAxis: {
        title: {
            text: 'Fruit eaten'
        }
    },
    series: [{
        name: 'Jane',
        data: [1, 0, 4]
    }, {
        name: 'John',
        data: [5, 7, 3]
    }]
});