全部: [更新]我发现一种愚蠢但几乎工作的方式:
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)。
我要做的是让图像尽可能填充窗口但不会溢出,任何人都可以给我一些简单的算法来计算单个图像的大小?
由于