タイトルが適切かどうかわからないので、必要に応じて編集してください:-)
以下に説明するレイアウトを作成する一連のhtml/cssがあります。
すべてのセルは、html 内の番号付きクラス (cell_1、cell_2 など) を持つ div です。
番号 1 のページ ロード セルが最初のグリッドで強調表示されている場合。
ユーザーは、キーボードの矢印キーを使用してセル間を移動できます。ENTER を押すと、ユーザーは位置 1 の別のグリッドにジャンプできます。
いくつかのロジック (以下で説明) を使用して、現在のセルの位置 (セルが強調表示されている) に応じて、特定のセルにのみナビゲーションが許可されます。
各グリッドのロジックについては、以下で説明します。
n= do nothing
bar= do nothing
y-2= means move to cell 2
私の質問は、グリッドごとに一連のハードコーディングされたif
orステートメントを使用する代わりに、再利用可能なロジック(Matrix または js で可能な同様のもの) を持つスマートな方法を提案していただけますか?case
可能であれば、短い例またはリソースへのリンクを提供してください。このアプローチを解決する別の方法は大歓迎です。
EXAMPLE LOGIC:
grid type: 5x
+--------+------+-------+
+ + 2 + 4 +
+ 1 +------+-------+
+ + 3 + 5 +
+--------+------+-------+
cell up down left right
1 n bar n y-2
2 n y-3 y-1 y-4
3 y-2 bar y-1 y-5
4 n y-5 y-2 n
5 y-4 bar y-3 n
grid type: 7x
+--------+------+-------+-------+
+ 1 + 3 + 6 +
+------- +------+-------+-------+
+ 2 + 4 + 5 + 7 +
+--------+------+-------+-------+
cell up down left right
1 n y-2 n y-3
2 y-1 bar n y-4
3 n y-4 y-1 y-6
4 y-3 bar y-2 y-5
5 y-3 bar y-4 y-7
6 n y-7 y-3 n
7 y-6 bar y-5 n
///////////////////////
grid type: 4x
+--------+------+-------+-------+
+ + + + +
+ 1 + 2 + 3 + 4 +
+ + + + +
+--------+------+-------+-------+
cell up down left right
1 n bar n y-2
2 n bar y-1 y-3
3 n bar y-2 y-4
4 n bar y-3 n