gpt4 book ai didi

javascript - gridster.js 使用 highcharts 时调整大小问题

转载 作者:行者123 更新时间:2023-12-01 02:20:34 36 4
gpt4 key购买 nike

当我调整 gridster 小部件的大小时,gridster 小部件内的 Highcharts 不会自动调整大小。当我调整窗口大小时, Highcharts 会根据网格大小调整大小。但当我调整网格大小时,它应该会自动发生。

我尝试过的代码如下:

<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>GridSter With HighChart</title>
<link rel="stylesheet" type="text/css" href="http://gridster.net/dist/jquery.gridster.css">
<link rel="stylesheet" type="text/css" href="http://gridster.net/demos/assets/demo.css">
<body>

<div class="controls">
<button class="js-resize-random">Resize random widget</button>
</div>

<div class="gridster ready">
<ul style="height: 520px; width: 550px; position: relative;">
<li class="gs-w" data-row="1" data-col="1" data-sizex="2" data-sizey="4">
<div id="container" style="width:100%;margin: 0 auto"></div>
<span class="gs-resize-handle gs-resize-handle-both"></span></li>
<li class="gs-w" data-row="1" data-col="3" data-sizex="1" data-sizey="2">1<span class="gs-resize-handle gs-resize-handle-both"></span></li>
<li class="gs-w" data-row="1" data-col="4" data-sizex="1" data-sizey="1">2<span class="gs-resize-handle gs-resize-handle-both"></span></li>
<li class="gs-w" data-row="3" data-col="2" data-sizex="3" data-sizey="1">3<span class="gs-resize-handle gs-resize-handle-both"></span></li>
<li class="gs-w" data-row="1" data-col="5" data-sizex="1" data-sizey="3">9<span class="gs-resize-handle gs-resize-handle-both"></span></li>
</ul>
</div>

<script type="text/javascript" src="http://gridster.net/demos/assets/jquery.js"></script>
<script src="http://gridster.net/dist/jquery.gridster.js" type="text/javascript" charset="utf-8"></script>

<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>

<script type="text/javascript">
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
</script>

<script type="text/javascript">
var gridster;

$(function(){

gridster = $(".gridster ul").gridster({
widget_base_dimensions: [100, 55],
widget_margins: [5, 5],
helper: 'clone',
resize: {
enabled: true
}
}).data('gridster');


$('.js-resize-random').on('click', function() {
gridster.resize_widget(gridster.$widgets.eq(getRandomInt(0, 9)),
getRandomInt(1, 4), getRandomInt(1, 4))
});

});
</script>

<script>
$(function () {
chart = $('#container').highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'Browser market shares at a specific website, 2010'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
format: '<b>{point.name}</b>: {point.percentage:.1f} %'
}
}
},
series: [{
type: 'pie',
name: 'Browser share',
data: [
['Firefox', 45.0],
['IE', 26.8],
{
name: 'Chrome',
y: 12.8,
sliced: true,
selected: true
},
['Safari', 8.5],
['Opera', 6.2],
['Others', 0.7]
]
}]
});
});

</script>

</body></html>

最佳答案

根据Highcharts api ,自动重排仅发生在 window.resize 事件上。您必须明确地执行此操作。我只需在 gridster 的 resize.stop callback 中执行即可:

gridster = $(".gridster ul").gridster({
widget_base_dimensions: [100, 55],
widget_margins: [5, 5],
helper: 'clone',
resize: {
enabled: true,
stop: function(e, ui, $widget) {
Highcharts.charts[0].reflow(); // reflow the first chart...
}
}
}).data('gridster');

fiddle 示例 here .

关于javascript - gridster.js 使用 highcharts 时调整大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21811690/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com