我正在尝试为容器找到最佳尺寸。
我必须使用以下值:
窗最大宽度
窗户最大高度
每栏中要容纳的项目
每行要容纳的物品
每个项目都必须是一个正方形,并且容器必须完全适合这些项目。我还需要容器尽可能大,使其不大于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
,我不会得到负值。无需担心以逗号结尾的代码段,接下来的几行只是将
dWidth
和dHeight
分配给画布。 最佳答案
您可以水平放置的平方数是dWidth/width
,您可以垂直放置的数数是dHeight/height
。因此,您可以像这样计算出最大数量:var dSize = Math.min(dWidth/width, dHeight/height);
如果需要绝对值,请继续并在结果上使用Math.floor
。