1

ページにナビゲーションを作成しようとすると、かなり大きな問題が発生します。マウスが要素に入ると、それが選択されます。矢印キーを使用すると、選択した要素に関連する要素が選択されます。ただし、これは、矢印キーによってページがスクロールされる場合に問題になります。これは、(マウスの位置に応じて) 適切な要素が選択され、ページが移動した後にマウスが置かれている項目が即座に選択されるためです (マウスを動かさないでください)。

この問題を解決する方法を知っている人はいますか?私はそれをいじってみましたが、私の解決策はどれもうまくいかないようでした。どんな助けでも大歓迎です、ありがとう。

4

3 に答える 3

1

「マウスが入ったときに選択する」イベントをmousemoveバインドし、そのイベントをバインド解除する必要があるようですmousestop単独では存在しないため、何らかの方法で作成するか、プラグインを使用する必要があります ( https://github.com/richardscarrott/jquery-mousestop-event/mousestopなど、少なくともいくつかあります)。これが最も簡単な解決策だと思いますが、UI が少し奇妙に思えます (矢印キーでページを通常どおりスクロールし、スクロール サイズよりも大きい可能性のある要素を「選択」する必要がありますか? )

于 2012-04-05T21:56:04.347 に答える
1

mousemove完全には理解できませんが、とkeypressイベントを組み合わせて使用​​できるはずです。

$("#element").mousemove(function(e){
    alert("mouse moved");
});

$("#element").keypress(function(e){
    if (e.keyCode == 38 || e.keyCode == 40){ //up & down arrow keys
        e.preventDefault();
    }
});
于 2012-04-05T21:24:31.537 に答える
0

矢印キーをチェックするキーボード イベント ハンドラーから false を返してみてください。

element.onkeypress = function(ev) {
    // ...
    return false;
}

これにより、ブラウザがイベントに対して持っている「デフォルトの動作」であるスクロールが妨げられます。これはリンクに対しても機能します。たとえば、リンクのclickイベント ハンドラーから false を返すと、リンクをクリックしても自動的にはたどりません。

于 2012-04-05T21:22:45.097 に答える