1

インライン ブロック要素を含む指定された幅 980px のコンテナーがあります。各要素の幅と高さは 140px です。これは、次の行/行にプッシュされる前に、各行/行に 7 つの要素を含めることができることを意味します。

<div id="container"><div id="ele1"></div><div id="ele2"></div><div id="ele3"></div><div id="ele4"></div><div id="ele5"></div><div id="ele6"></div><div id="ele7"></div><div id="ele8"></div><div id="ele9"></div><div id="ele10"></div><div id="ele11"></div><div id="ele12"></div><div id="ele13"></div><div id="ele14"></div></div>

要素の数を知っている場合、要素がどの行/行とどの列にあるかを JavaScript (jQuery ではなく) でどのように判断すればよいですか? 数は動的であり、スクリプトによって設定されないため、任意の数の要素に対してこれを実行できる必要があります。

4

3 に答える 3

2

これはうまくいくかもしれません:

column = Number(yourNumber) % 7
row = Math.floor(Number(yourNumber) / 7)

これは、0 から開始すると仮定し、最初の要素は (0, 0) です。

于 2012-06-10T05:03:11.410 に答える
2

0、1、... から始まる要素の番号がわかっている場合は、次のコードを使用します。

function getRowColNoFor(elementNo) {
    var col = elementNo % 7;

    return {
        col: col,
        row: (elementNo - col) / 7
    };
}
于 2012-06-10T05:05:40.690 に答える
0

7 つの要素があることがわかっている場合は、要素の番号 (0 から始まる) を 7 で割り、その位置を取得できます。

要素の番号を 7 で割ると、「整数」の値が行になり、残りが列になります。

したがって、グリッド内の位置を取得するには、次のようにします。

function getPositon(index) {
    return {
        row: Math.floor(index / 7),
        column: index % 7
    };
}

デモ: http://jsfiddle.net/UVZ5f/1/

于 2012-06-10T05:23:41.873 に答える