1

我正在尝试通过条目之间的关键事件创建导航。左右键向任一端移动。它的工作原理类似于我从某人修改的这个JsFiddle,尽管在实际中,每个条目都有自己的链接到上一个和下一个。

angular.element($document).bind("keyup", function(event) {
  if (event.which === 37) {
    $scope.$apply(function() {
      $location.path("/Book/Moby");
    });
  } else if (event.which === 39) {
    $scope.$apply(function() {
      $location.path("/Book/Gatsby");
    });
  }
});

它似乎在 JsFiddle 中运行良好,但如果您查看控制台并查看从左右键触发的事件数量,它将严重减慢导航速度。这些事件中的每一个都将运行 $location.path。

关于如何只听一次事件或刷新旧事件的任何建议都会很棒

4

2 回答 2

2

你可以unbind在绑定它之前。

angular.element($document).unbind('keyup');
于 2013-05-21T01:27:47.820 回答
0
      First of all you have to check whether it is hide from bottom side or upper side.

假设元素是 li,它曾经是最常见的 dom。

<ul>
<li></li> 
<li></li>
<li></li> 
<li></li>
<ul>

然后每个 li 高度都是 ul 的相对位置。如果有 1000 个元素,那么如果你想找出第 900 个元素的位置,那么你可以用 offset() 找出,但是当你应用动画并使它们可见时,你会卡住那个滚动不是隐藏的移动元素应该更多。

use some Mathematics Height*nth:child will always give you a right position

提供小提琴示例,以便基本概念清晰 http://jsfiddle.net/MGwVM/108/

于 2015-04-24T12:53:28.797 回答