我的任务是实现 d-pad GoogleTV 现有 Web 应用程序的导航(我正在 Google Chrome 中进行测试,到目前为止它们的操作似乎相似。In their notes 为了实现方向键导航,它们具有向上、向右、向左、向下和选择的基本处理程序.
目前我有一个方案来初始化一个虚拟光标,然后为各种dpad笔画。我依赖于使用 document.elementFromPoint()
并循环直到我找到一个以前未选择的新元素。我正在使用 outline:
css 来指示当前位置,我只在选择了其中一个方向键控件时显示它。
我有一个初始化步骤,将类 dpadClickable
添加到所有可点击的项目,然后随着光标移动,我将 dpadHighlighted
添加到新项目并从所有其他元素中删除。看起来不错。
如果我有一个可滚动的元素,或者如果方向是向下移动我的点找不到任何东西,这一切都会失败。
我想要的是一个数据结构来保存我所有的 dpadClickable
项目,然后在 d-pad 点击时,能够迭代它以找到最接近的顶部,向下,向左,和正确的元素。比如,我应该根据 top
和 left
属性来做吗?还是基于计算出的中心点?
我找到了一个 jQuery library哪种方式实现了这一点,并在某种程度上对其进行了逆向工程。但我真正想要的是这类编程问题的入门读物:我应该寻找图形编程算法吗?游戏?还有别的吗?
更新:关于 User Experience StackExchange 的问题网站:Adding D-pad navigation to an existing web application: Resources?
最佳答案
你看过http://code.google.com/tv/web/lib/了吗?官方 Google TV Java 脚本扩展/库在哪里?他们可能会帮助您。
关于javascript - D-pad 导航 - 数据结构和编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327558/