带有 Highcharts 的 Gridster,缩小特定图表并重新计算
Gridster with Highcharts, make specific Chart smaller and recalculate
我正在构建一个带有 gridster 和 highcharts 的仪表板。
如果我调整 window 的大小并且带有高图的小部件大于 window,我想调整它的大小以使其更小并且 gridster 应该重新计算其他的位置。
我试过这段代码来制作一个小部件,如果它大于 windows 宽度,它的高图会更小:
$( ".dashboard > li" ).each(function()
{
var chart = $(this).children('div');
// console.log(' Window: ' + width);
console.log(chart);
if(chart.width() > width)
{
//alert('hier');
// $(this).css('width',width + 'px');
$(this).css('background-color','red');
chart.width(width);
chart.highcharts().reflow();
}
});
但什么也没发生。
如果我手动调整小部件及其高位图的大小,主网格仍然比 window 大,因为它不会重新计算。
请帮助我。
更新1:
定位问题
所以现在我是这样实现的:如果屏幕尺寸低于限制,所有小部件都将获得相同的尺寸,并且将通过设置 data-col=1 和 [=25= 被推到第一行].现在出现了一个新问题:推送的小部件与其他小部件重叠。我猜 gridster 不会重新计算这些东西。我如何强迫他重新计算位置? "avoid_overlapped_widgets: true" 不工作
在 gridster 中更改宽度时调用 window 调整大小功能。使用高图调用 div 的百分比宽度。不要使用固定宽度。
$(window).resize();
您可以将图表容器的宽度设置为 100%(在 CSS 中)或在调整图表大小时调用 setSize。
是的,完成了!!!! :D
解决方案:
我正在计算最后一行:
var row = 0;
var lastRow = 0;
$( ".dashboard > li" ).each(function()
{
rowe = parseInt($(this).attr('data-row'));
if(row < rowe)
{
row = rowe;
lastElement = $(this);
}
lastRow = parseInt($(this).attr('data-row'));
});
然后我将所有小部件移至第一列和最后一行
if(parseInt($(this).attr('data-col')) > 1)
{
$(".gridster ul").data('gridster').move_widget($(this), 1, lastRow);
}
move_widget 是这里创建的函数:Move Gridster Widgets programmatically
感谢您的回答
[关闭]
我正在构建一个带有 gridster 和 highcharts 的仪表板。 如果我调整 window 的大小并且带有高图的小部件大于 window,我想调整它的大小以使其更小并且 gridster 应该重新计算其他的位置。 我试过这段代码来制作一个小部件,如果它大于 windows 宽度,它的高图会更小:
$( ".dashboard > li" ).each(function()
{
var chart = $(this).children('div');
// console.log(' Window: ' + width);
console.log(chart);
if(chart.width() > width)
{
//alert('hier');
// $(this).css('width',width + 'px');
$(this).css('background-color','red');
chart.width(width);
chart.highcharts().reflow();
}
});
但什么也没发生。
如果我手动调整小部件及其高位图的大小,主网格仍然比 window 大,因为它不会重新计算。
请帮助我。
更新1: 定位问题
所以现在我是这样实现的:如果屏幕尺寸低于限制,所有小部件都将获得相同的尺寸,并且将通过设置 data-col=1 和 [=25= 被推到第一行].现在出现了一个新问题:推送的小部件与其他小部件重叠。我猜 gridster 不会重新计算这些东西。我如何强迫他重新计算位置? "avoid_overlapped_widgets: true" 不工作
在 gridster 中更改宽度时调用 window 调整大小功能。使用高图调用 div 的百分比宽度。不要使用固定宽度。
$(window).resize();
您可以将图表容器的宽度设置为 100%(在 CSS 中)或在调整图表大小时调用 setSize。
是的,完成了!!!! :D
解决方案:
我正在计算最后一行:
var row = 0;
var lastRow = 0;
$( ".dashboard > li" ).each(function()
{
rowe = parseInt($(this).attr('data-row'));
if(row < rowe)
{
row = rowe;
lastElement = $(this);
}
lastRow = parseInt($(this).attr('data-row'));
});
然后我将所有小部件移至第一列和最后一行
if(parseInt($(this).attr('data-col')) > 1)
{
$(".gridster ul").data('gridster').move_widget($(this), 1, lastRow);
}
move_widget 是这里创建的函数:Move Gridster Widgets programmatically
感谢您的回答
[关闭]