2

所以,我有一小段代码可以生成盒子的行和列,它们之间有空格。

它似乎工作正常;但是,当我将框的高度和宽度设置为 32 像素并将它们之间的空间设置为 8 像素时,框应该在的位置开始出现间隙。

如果我使用几乎任何其他数字,它们都可以工作,但我当然会把我的想法定在 32 和 8 上。

我想知道这是否是我循环创建盒子的方法,或者是否有一些我不明白的基础数学正在发生。

这是使用相关代码设置的 jsFiddle:

http://jsfiddle.net/dondon/zMnuK/

如果您将 JS 部分中的“间距”修改为 7 或 9,间隙就会消失。什么是 8(或 4)导致间隙出现?

任何输入表示赞赏!:)

4

2 回答 2

4

它与具有相同 id 的多个盒子有关,并且它们都设置了 css,因此它们最终位于完全相同的位置。例如,创建的第三个框的 x 位置(x 与您的循环顺序垂直)为 88px,y 位置为 8px。然后很晚在第三行中出现一个 y = 88px 和 x = 8px 的框。已达到,因此'box' + x + y;这两个框都是相同的。你不能有多个相同的元素id,所以在那之后任何事情都可能发生。

简单的解决方案是更改:

var boxid = "box"+x+y;

至:

var boxid = "box"+x+'_'+y;

更新了 JSFiddle

于 2012-05-09T03:06:18.150 回答
0

当您分配您的 boxid 值时,似乎存在混叠,而这仅发生在间距等于 8 的情况下。

最初你有:

var boxid = "box"+x+y;

所以你可以有两个具有相同 id 的盒子

将其更改为:

var boxid = "box"+x+"_"+y;
于 2012-05-09T03:09:25.233 回答