UNPKG

naviix

Version:

Spatial navigation. Arrow key navigation.

125 lines (113 loc) 1.8 kB
# 原理 计算元素某一方向上距离最近的元素,距离相等时,优先考虑平行的投影距离,偏移 45 度以内算作同一方向。 ## 入参类型 simple: ```json [ [4, 3, 2, 1], { "id": "x", "loc": [1, 2, 3, 4] } ] ``` output: ```json [{ "locs": [{ "id": [4, 3, 2, 1], "loc": [4, 3, 2, 1] }, { "id": "x", "loc": [1, 2, 3, 4] }] }] ``` obj: ```json { "locs": [[1, 2, 3, 4], [3, 2, 1, 4]], "subs": [{ "locs": [[1, 2, 3, 4], { "id": "z", "loc": [3, 3, 3, 3] }], "wrap": { "id": "x", "loc": [4, 4, 4, 4] }, "subs": { "locs": [[6, 6, 6, 6], [7 ,7 ,7 ,7]], "wrap": [9, 9, 9, 9] } }, { "locs": [[2, 2, 2, 2], [1, 1, 1, 1]], "wrap": { "id": "y", "loc": [2, 2, 2, 2] }, }] } ``` output: ```json [{ "locs": [{ "id": [1, 2, 3, 4], "loc": [1, 2, 3, 4] }, { "id": [3, 2, 1, 4], "loc": [3, 2, 1, 4] }], "subs": [{ "locs": [{ "id": [1, 2, 3, 4], "loc": [1, 2, 3, 4] }, { "id": "z", "loc": [3, 3, 3, 3] }], "wrap": { "id": "x", "loc": [4, 4, 4, 4] }, "subs": [{ "locs": [ { "id": [6, 6, 6, 6], "loc": [6, 6, 6, 6] }, { "id": [7, 7, 7, 7], "loc": [7, 7, 7, 7] } ], "wrap": { "loc": [9, 9, 9, 9], "id": [9, 9, 9, 9] } }] }, { "locs": [{ "id": [2, 2, 2, 2], "loc": [2, 2, 2, 2] }, { "id": [1, 1, 1, 1], "loc": [1, 1, 1, 1] }], "wrap": { "id": "y", "loc": [2, 2, 2, 2] } }] }] ``` array: ```json [{ "locs": [], "wrap": { "id": "x", "loc": [] } }, { "locs": [], "wrap": { "id": "y", "loc": [] } }] ```