キーボードのキーで切り替えることができるオーバーレイを作成しようとしています。ただし、フェードアウトを使用してメニューを非表示にすると、ウィンドウをクリックするまで、ドキュメントはキーダウン イベントを受け取りません。フェードアウトが終了した直後にドキュメントがリッスンするようにドキュメントにフォーカスを与えるにはどうすればよいですか?
<div id="overlay" class="overlay">
<input type="text" value="test"/>
</div>
$('#overlay').on('keydown', function() {
$('#overlay').fadeOut(1000);
return false;
});
$(document).on('keydown', function() {
$('#overlay').fadeIn(1000);
return false;
});
.overlay {
position: fixed;
background: black;
color: white;
width: 50%;
height: 100px;
}
入力フィールドにカーソルを置き、1 つのキーを押します。1 秒でフェードアウトするはずです。その後、マウスでクリックするまで、ドキュメントはキーダウンを受け取りません。1 つのキーボード キーだけでモードを切り替えることができるように、ドキュメントにフォーカスを与えるにはどうすればよいですか?
編集:さまざまなブラウザでフィドルをテストしました。この問題はクロムに固有のようです。