Gridster 与 Highcharts,使特定图表更小并重新计算

Posted

技术标签:

【中文标题】Gridster 与 Highcharts,使特定图表更小并重新计算【英文标题】:Gridster with Highcharts, make specific Chart smaller and recalculate 【发布时间】:2015-12-15 20:40:58 【问题描述】:

我正在用gridster和highcharts构建一个仪表板。 如果我调整窗口的大小并且带有 highchart 的小部件比窗口大,我想调整它的大小以使其更小,并且 gridster 应该重新计算其他小部件的位置。 如果它大于窗口宽度,我尝试使用此代码使小部件及其高图更小:

$( ".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();
            
        );

但什么也没发生。

如果我手动调整小部件及其 highcharts 的大小,主网格仍然比窗口大,因为它不会重新计算。

请帮帮我。

更新1: 定位问题

所以现在我已经这样做了:如果屏幕尺寸超出限制,所有小部件都将获得相同的尺寸,并通过使用 jquery 设置 data-col=1 将其推送到第一行。现在发生了一个新问题:推送的小部件正在重叠其他小部件。我猜gridster不会重新计算这些东西。我如何强迫他重新计算职位? “avoid_overlapped_widgets: true”不起作用

【问题讨论】:

这是我“缩小特定图表”的问题:***.com/questions/32630868/… 【参考方案1】:

在 gridster 中更改宽度时调用窗口调整大小功能。使用 highchart 以百分比形式调用 div 的宽度。不要使用固定宽度。

 $(window).resize();

【讨论】:

所以现在我这样做了:如果屏幕尺寸超出限制,则所有小部件都将获得相同的尺寸,并将通过使用 jquery 设置 data-col=1 将其推送到第一行.现在出现了一个新问题:推送的小部件与其他小部件重叠。我猜gridster不会重新计算这些东西。我如何强迫他重新计算职位? “avoid_overlapped_widgets: true”不起作用【参考方案2】:

您可以在图表容器上将宽度设置为 100%(在 CSS 中)或在调整图表大小时调用 setSize。

【讨论】:

【参考方案3】:

是的,它完成了!!!! :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

感谢回复

[关闭]

【讨论】:

哦不,他不会在 android 中这样做 ok Android 没有加载完整的 javascript。再试一次就可以了

以上是关于Gridster 与 Highcharts,使特定图表更小并重新计算的主要内容,如果未能解决你的问题,请参考以下文章

如何使 textarea 元素填充整个父 div 网格框(使用 angular-gridster2 或 gridster 库)?

在gridster中使文本框大小相对于小部件大小

gridster c3 图表自动调整大小问题

Gridster 里面的 Gridster

可在 angular-gridster 中的小部件之间拖动

Highcharts:legendItemClick:使背景透明而不是删除它