将keydown
事件侦听器附加到窗口,然后查看它是否是箭头键(keyCode 37 为左,38 为上,39 为右,40 为下)并相应地调整document.body.scrollTop
(以及document.documentElement.scrollTop
对于某些浏览器)。
例如:
var handler = function(e) {
e = e || window.event;
var k = e.keyCode || e.which;
switch(k) {
case 37:
document.body.scrollLeft -= 1000;
document.documentElement.scrollLeft -= 1000;
break;
case 38:
document.body.scrollTop-= 1000;
document.documentElement.scrollTop-= 1000;
break;
case 39:
document.body.scrollLeft += 1000;
document.documentElement.scrollLeft += 1000;
break;
case 40:
document.body.scrollLeft += 1000;
document.documentElement.scrollLeft += 1000;
break;
default: return true;
}
if( e.preventDefault) e.preventDefault();
return false;
};
if( window.attachEvent) window.addEvent("onkeydown",handler,false);
else window.addEventListener("keydown",handler,false);
您可能还需要添加overflow:hidden
以防止通过其他方式(滚动条、鼠标滚轮)滚动以确保滚动以适当的增量。