我正在尝试为容器找到最佳尺寸。

我必须使用以下值:


窗最大宽度
窗户最大高度
每栏中要容纳的项目
每行要容纳的物品


每个项目都必须是一个正方形,并且容器必须完全适合这些项目。我还需要容器尽可能大,使其不大于x方向的最大宽度和y方向的最大高度。

我当前的代码(实际上不起作用)如下所示:

[dWidth, dHeight] = [window.innerWidth, window.innerHeight];
// Adjust sizes, for the tiles

var tiles = (width + height) / 2;

dSize = (dWidth / tiles) > (dHeight / tiles) ?
  (dHeight / tiles) : (dWidth / tiles);

dSize |= 0,

dWidth = width * dSize,
dHeight = height * dSize,



dWidth是我要创建的容器的宽度
dHeight是我要创建的容器的高度
width是我的列数
height是我的行数
dSize是每个项目的高度和宽度。


不用担心奇怪的dWidth分配,这是临时的。

无需担心dSize |= 0,我不会得到负值。

无需担心以逗号结尾的代码段,接下来的几行只是将dWidthdHeight分配给画布。

最佳答案

您可以水平放置的平方数是dWidth/width,您可以垂直放置的数数是dHeight/height。因此,您可以像这样计算出最大数量:

var dSize = Math.min(dWidth/width, dHeight/height);

如果需要绝对值,请继续并在结果上使用Math.floor

09-27 11:05