2011-01-25 10 views
2

私はこの小さなjqueryプラグインを持っています。垂直スクロール可能なdivにはいくつかの画像があります。私はこのdivをクリックし、矢印キーを使ってスクロールすることができます。ウェブキットのフォーカスされたdivのキーボードスクロール

このexampleを見ると、右矢印キーまたは左矢印キーが押されているかどうかを確認したい場合は、次の画像にジャンプします。 FirefoxとIEでは、keyup()イベントが呼び出されています。サファリとクロムでは呼び出されていません。

Webkitブラウザで奇妙なスクロールやフォーカス動作が発生しましたが、なぜkeyup()イベントが発生していないのか分かりません。何か考えているなら、教えてください。

答えて

11

div要素にtabindex属性を追加するだけで問題ありません。これは、inputbuttonのように、焦点を合わせることができない要素をフォーカス可能にするためのハックです。

  • 0はあなたが
  • -1は、タブ移動を無効にしますキーキーボードの矢印キーやタブで要素を集中できるようになりますが、それはまだでしょう:

    tabindexに与えられた値によっては、diffrently動作します

  • 0を超えるものは、タブのフォーカスを優先させることができます。1が最も高い優先度を持ちます

私はそれに応じてjsFiddle demoを更新しました。

+0

素晴らしい!期待どおりに動作します!これがWebkitのための修正である理由を知っていますか? –

+0

ああ、もちろん...ありがとうございます – koko

+0

@Razvan、なぜならWebkitはフォーカス可能な要素に関してはもっと厳しいからです。要素にフォーカスイベントをトリガーしてフォーカスを合わせるだけでは不十分です。 – mekwall