我有一个网格,假设有 12 张卡片、4 列和 3 行。 每个列都有不同的类。 第 1 列:具有 A 类。 第 2 列:具有 b 类,依此类推 c 和 d。
如果我循环遍历所有具有 a 类的卡片,我可以知道它们的行位置,因为每个卡片都有一个索引。
我的问题是,当有人点击卡片时,假设 b 列第 2 行,我们如何获取索引,我知道它在第 2 列中,因为它的类为 b,但我如何知道它是哪一行?
我需要的是一个数学函数,我可以传入 7(如果第 7 张卡被按下),它将返回 2(因为它在第二行),而对于 10,它将返回 3。
我使用了 12 张卡片作为示例,但这个数学函数应该返回任意数量的卡片。
最佳答案
在您的事件处理程序中,获取卡片的索引idx
,然后调用如下内容:
var rows = 3, cols = 4;
function getCoords(idx,rows,cols) {
var rowval = Math.floor(idx/rows),
colval = idx % cols; // modulo
return [rowval,colval]; // ordered array
};
不要忘记 idx
从零开始计数,而不是从一开始,因此第 7 张牌应该有 idx=6
。
关于javascript - 获取网格中元素的位置除以 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27020791/