如何将大量图像放入窗口区域而不会溢出

时间:2015-05-15 16:55:51

标签: html css image algorithm

全部: [更新]我发现一种愚蠢但几乎工作的方式:

function (total, W, H){
                    var fillVertical;
                    var fillHorizontal;
                    for(var n=1; n<total; n++){
                        var m = Math.floor( W/(H/n) );
                        if( (n*m>=total) && (n*m<(total+m) ) ){
                            fillVertical = {
                                row: n,
                                col: m,
                                size: +(Math.floor(100*H/n)/100).toFixed(2),
                                remainspace: H*(W-(H/n)*m)
                            }
                            break;
                        }
                    }
                    for(var m=1; m<total; m++){
                        var n = Math.floor( H/(W/m) );
                        if( (n*m>=total) && (n*m<(total+m) ) ){
                            fillHorizontal = {
                                row: n,
                                col: m,
                                size: +(Math.floor(100*W/m)/100).toFixed(2),
                                remainspace: W*(H-(W/m)*n)
                            }
                            break;
                        }
                    }
                    if(!fillVertical){
                        return fillHorizontal;
                    }
                    if(!fillHorizontal){
                        return fillVertical;
                    }
                    return (fillVertical.remainspace<fillHorizontal.remainspace? fillVertical:fillHorizontal);
                }

=============================================== =========================

如果我有很多图像网址(大约100个),并且我将它们分别放在一起,所有图像都是相同的大小(你不需要担心比率问题,但你需要保持这个比例,实际大小是100乘100)。

我要做的是让图像尽可能填充窗口但不会溢出,任何人都可以给我一些简单的算法来计算单个图像的大小?

由于

1 个答案:

答案 0 :(得分:0)

这是我对纯数学答案的尝试。

假设所有图像的比例为1:1,并且它们的比例不应大于100px,但仍会填充可用的全部空间。

JSFiddle