सारांश
बस डिफ़ॉल्ट ब्राउज़र कार्रवाई को रोकें :
window.addEventListener("keydown", function(e) {
if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
e.preventDefault();
}
}, false);
मूल उत्तर
मैंने अपने गेम में निम्न फ़ंक्शन का उपयोग किया:
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);
में जादू होता है e.preventDefault();
। यह घटना की डिफ़ॉल्ट कार्रवाई को अवरुद्ध करेगा, इस मामले में ब्राउज़र के दृष्टिकोण को आगे बढ़ाएगा।
यदि आपको वर्तमान बटन की आवश्यकता नहीं है, तो आप बस छोड़ सकते हैं keys
और तीर कुंजियों पर डिफ़ॉल्ट कार्रवाई को छोड़ सकते हैं :
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);
ध्यान दें कि यह दृष्टिकोण आपको बाद में ईवेंट हैंडलर को निकालने में सक्षम बनाता है यदि आपको तीर कुंजी स्क्रॉलिंग को फिर से सक्षम करने की आवश्यकता है:
window.removeEventListener("keydown", arrow_keys_handler, false);
संदर्भ