angularjs – 仅使用键盘导航UI

前端之家收集整理的这篇文章主要介绍了angularjs – 仅使用键盘导航UI前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过仅使用键盘的记录列表导航.当页面加载时,默认的“焦点”应该在第一个记录上,当用户单击键盘上的向下箭头时,下一个记录需要聚焦.当用户点击向上箭头时,上一个记录应该被聚焦.当用户单击“输入”按钮时,应将其转到该记录的详细信息页面.

Here’s what I have so far on Plunkr.

似乎在1.1.5(不稳定)的AngularJS中支持这一点,我们不能在生产中使用它.我目前正在使用1.0.7.我希望做这样的事情 – 关键应该在文档级别处理.当用户按某个键时,代码应该查找一个允许的键的数组.如果找到匹配项(例如下键编码),则应将焦点移动(应用.highlight css)到下一个元素.按下Enter键后,应该抓住记录,高亮css并获取进一步处理的记录ID.

谢谢!

以下是您可以选择的示例:
http://plnkr.co/edit/XRGPYCk6auOxmylMe0Uu?p=preview
<body key-trap>
  <div ng-controller="testCtrl">
    <li ng-repeat="record in records">
      <div class="record"
           ng-class="{'record-highlight': record.navIndex == focu sIndex}">
        {{ record.name }}
      </div>
    </li>
  </div>
</body>

这是我能想到的最简单的方法.
它将一个指令keyTrap绑定到捕获keydown事件的主体
$广播消息到子范围.
元素持有者范围将捕获消息,并简单地增加或减少
focusIndex或点击进入时打开一个打开的功能.

编辑

http://plnkr.co/edit/rwUDTtkQkaQ0dkIFflcy?p=preview

现在支持,有序/过滤列表.

事件处理部分没有改变,但现在使用$index并且也过滤列表缓存技术结合起来跟踪哪个项目正在聚焦.

猜你在找的Angularjs相关文章