2013-08-30 10 views
12

पर स्पेसबार दबाए जाने पर स्क्रॉल को अक्षम करें जब मैं स्पेसबार दबाता हूं तो मैं स्क्रॉल को अक्षम करना चाहता हूं। यह केवल फ़ायरफ़ॉक्स में होता है।फ़ायरफ़ॉक्स

मैं पहले से ही अतिप्रवाह का उपयोग करता हूं: छुपा और मेटा टैग व्यूपोर्ट।

धन्यवाद।

+0

कृपया दाईं ओर स्थित "संबंधित" साइडबार देखें। http://stackoverflow.com/questions/2343573/pressing-spacebar-moves-page-down – showdev

उत्तर

29

यह चाल चलाना चाहिए। यह बताता है कि जब पृष्ठ/दस्तावेज़ पर स्पेसबार दबाया जाता है तो यह केवल अपने डिफ़ॉल्ट व्यवहार को रोकता नहीं है, लेकिन मूल स्थिति में वापस आ जाता है।

वापसी झूठी रोकथाम शामिल है प्रतीत होता है। Source

चेक JQuery एपीआई keydown घटनाओं के बारे में अधिक जानकारी के लिए की - http://api.jquery.com/keydown/

window.onkeydown = function(e) { 
    return !(e.keyCode == 32); 
}; 

JQuery उदाहरण

$(document).keydown(function(e) { 
    if (e.which == 32) { 
     return false; 
    } 
}); 

संपादित: कहा गया है @ एम्बर-de-काला

"उपरोक्त कोड दबाने से रोक देगा एचटीएमएल इनपुट पर स्पेस कुंजी "। इसे ठीक करने के लिए आपको e.target जहां आप वास्तव में स्पेसबार अवरुद्ध करना चाहते हैं। यह HTML इनपुट जैसे अन्य तत्वों को अवरुद्ध करने वाले स्पेसबार को रोक सकता है।

इस मामले में हम शरीर के लक्ष्य के साथ स्पेसबार निर्दिष्ट करते हैं। यह इनपुट अवरुद्ध होने से रोकेगा।

window.onkeydown = function(e) { 
    if (e.keyCode == 32 && e.target == document.body) { 
    e.preventDefault(); 
    } 
}; 

नोट: आप JQuery e.keyCodeSource के बजाय e.which का उपयोग उपयोग कर रहे हैं।

The event.which property normalizes event.keyCode and event.charCode

JQuery घटनाओं की एक किस्म के लिए एक नॉर्मलाइज़र के रूप में कार्य करता है। अगर यह किसी को पढ़ने के लिए आश्चर्य की बात आती है। मैं उनके Event Object दस्तावेज पढ़ने की सलाह देते हैं।

+1

यह कोड HTML इनपुट पर स्पेस कुंजी दबाकर अवरुद्ध कर सकता है। आपको यहां पूर्ण सही उत्तर (e.target === document.body) की जांच करनी होगी: http://stackoverflow.com/a/22559917/3120495 – Ujeenator

0

क्या आपने जावास्क्रिप्ट में कीडाउन ईवेंट कैप्चर करने का प्रयास किया है? आप jQuery का उपयोग कर रहे हैं, तो आप यहां महत्वपूर्ण घटनाओं पर कब्जा करने के बारे में अधिक पढ़ सकते हैं: https://stackoverflow.com/a/2343597/1019092

+0

@Alberto - उत्तर के उस हिस्से को पढ़ना सुनिश्चित करें जो कहता है * "यह अधिकांश ब्राउज़रों में अपेक्षित व्यवहार है। मैं इसका उपयोग करता हूं जब भी यह किसी पृष्ठ में काम नहीं करता है तो मैं बहुत परेशान हो जाता हूं। "* –

6

का पता लगाने अगर स्पेस बार है: http://api.jquery.com/keydown/

आप के रूप में यहाँ वर्णित नहीं हैं, तो आप को पकड़ने और स्पेस बार कुंजी दबाने अनदेखा कर सकते हैं दबाया जा रहा है। यदि ऐसा है, तो इसके डिफ़ॉल्ट व्यवहार को रोकें।

document.documentElement.addEventListener('keydown', function (e) { 
    if ((e.keycode || e.which) == 32) { 
     e.preventDefault(); 
    } 
}, false);