Ringkasan
Cukup cegah tindakan browser default :
window.addEventListener("keydown", function(e) {
if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
e.preventDefault();
}
}, false);
Jawaban asli
Saya menggunakan fungsi berikut di game saya sendiri:
var keys = {};
window.addEventListener("keydown",
function(e){
keys[e.keyCode] = true;
switch(e.keyCode){
case 37: case 39: case 38: case 40:
case 32: e.preventDefault(); break;
default: break;
}
},
false);
window.addEventListener('keyup',
function(e){
keys[e.keyCode] = false;
},
false);
Keajaiban terjadi di e.preventDefault();
. Ini akan memblokir tindakan default dari acara tersebut, dalam hal ini memindahkan sudut pandang browser.
Jika Anda tidak memerlukan status tombol saat ini, Anda cukup melepas keys
dan membuang tindakan default pada tombol panah:
var arrow_keys_handler = function(e) {
switch(e.keyCode){
case 37: case 39: case 38: case 40:
case 32: e.preventDefault(); break;
default: break;
}
};
window.addEventListener("keydown", arrow_keys_handler, false);
Perhatikan bahwa pendekatan ini juga memungkinkan Anda untuk menghapus pengendali kejadian nanti jika Anda perlu mengaktifkan kembali pengguliran tombol panah:
window.removeEventListener("keydown", arrow_keys_handler, false);
Referensi