javascript - D-pad 导航 - 数据结构和编程?

标签 javascript html google-chrome google-tv d-pad

我的任务是实现 d-pad GoogleTV 现有 Web 应用程序的导航(我正在 Google Chrome 中进行测试,到目前为止它们的操作似乎相似。In their notes 为了实现方向键导航,它们具有向上、向右、向左、向下和选择的基本处理程序.

目前我有一个方案来初始化一个虚拟光标,然后为各种dpad笔画。我依赖于使用 document.elementFromPoint()并循环直到我找到一个以前未选择的新元素。我正在使用 outline: css 来指示当前位置,我只在选择了其中一个方向键控件时显示它。

我有一个初始化步骤,将类 dpadClickable 添加到所有可点击的项目,然后随着光标移动,我将 dpadHighlighted 添加到新项目并从所有其他元素中删除。看起来不错。

如果我有一个可滚动的元素,或者如果方向是向下移动我的点找不到任何东西,这一切都会失败。

我想要的是一个数据结构来保存我所有的 dpadClickable 项目,然后在 d-pad 点击时,能够迭代它以找到最接近的顶部,向下,向左,和正确的元素。比如,我应该根据 topleft 属性来做吗?还是基于计算出的中心点?

我找到了一个 jQuery library哪种方式实现了这一点,并在某种程度上对其进行了逆向工程。但我真正想要的是这类编程问题的入门读物:我应该寻找图形编程算法吗?游戏?还有别的吗?

Page layout with blue boxes indicated selectable areas

更新:关于 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/

相关文章:

php - 如何在 JS 中创建关联数组

html - 使用 background-image 属性的背景图像未出现,因此无法获得所需的显示

python - 如何使用 ChromeOptions 在 Python selenium 中禁用 CSS

javascript - google-chrome 中的 XMLHttpRequest 不报告进度事件

reactjs - Reactjs SEO 友好吗?使用谷歌机器人

javascript - 在不使用 Jquery 推送其他图像的情况下,在鼠标悬停时放大图像?

javascript对象变量键

javascript - 如何检测浏览器选项卡是否获得焦点并位于顶部?

jQuery hide() 不隐藏父级

html - 强制输入元素的宽度调整到它的内容/值