ウィンドウのイベントにイベント ハンドラーをバインドし、keyup
押されたキーが PgUP または PgDown または決定したものであれば、ダイアログをスクロールできます。このようなもの:
$(window).keydown(event) {
event.preventDefault();
}
$(window).keypress(event) {
event.preventDefault();
}
$(window).keyup(function(event) {
event.preventDefault();
var curScroll = $("#content").scrollTop();
switch(event.which) {
case 32:
case 34:
curFocus.scrollTop(curScroll + 100);
break;
case 33:
curFocus.scrollTop(curScroll - 100);
break;
}
});
ソリューションをよりよく説明するためにjsFiddleを作成しました。
編集:event.preventDefault()
ページのスクロールを避けるために、キーボード イベント ハンドラーに を追加しました。
更新: どうやら、ダイアログはシンプルfocus
またはblur
イベントを発生させず、本体も発生させません。フォーカスされた要素のみをスクロール可能にするか、ウィンドウがない場合はウィンドウをスクロール可能にするための指示を少し追加しました。
var curFocus = $(window);
$("#content").on("dialogfocus", function() {
curFocus = $(this);
});
$("body").click(function(event) {
if((event.target) != $("#content")[0])
curFocus = $(window);
});