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.

要素が最も一般的な dom であった li であるとしましょう。

<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 に答える