2010-02-12 9 views
20

वहाँ किस दिशा माउस को ले और कितनी दूर है स्पेस बार अगर और एक ही समय ट्रैक पर जांच करने के लिए एक रास्ता है आदि इस बात काजांचें कि क्या स्पेसबार दबाया जा रहा है और माउस jQuery के साथ एक साथ चल रहा है?

प्वाइंट है कि मैं दोहराने के लिए कैसे फ़ोटोशॉप स्क्रॉल जब आप अंतरिक्ष पकड़ चाहते है बार, बाएं माउस बटन और आप माउस को ले जाते हैं, लेकिन बाएं माउस बटन को दबाए बिना।

उत्तर

53

स्पेस बार दबाया गया है या नहीं, और mousemove() ईवेंट हैंडलर में उस स्थिति को देखने के लिए आप keydown() और keyup() का उपयोग कर सकते हैं।

var space = false; 
$(function() { 
    $(document).keyup(function(evt) { 
    if (evt.keyCode == 32) { 
     space = false; 
    } 
    }).keydown(function(evt) { 
    if (evt.keyCode == 32) { 
     space = true; 
     console.log('space') 
    } 
    }); 
}); 

और फिर अपने mousemove() हैंडलर अगर यह या दबाया नहीं कर रहा है देख सकते हैं: उदाहरण के लिए।

4

आपको शायद कीडाउन घटना के लिए देखना होगा, यह देखने के लिए जांचें कि यह स्पेसबार है, यह कहने वाला चर सेट करें, जब कुंजीपटल ईवेंट देखा जाता है तो इसे अनसेट करें।

तो, तब आप माउस आंदोलनों की तलाश करेंगे जब उस चर सेट को स्पेसबार दबाया गया था।

jQuery और Dragscrollable प्लगइन के साथ
var allowed = true; 
$(document).ready(
function() { 
    $(document).bind('keydown', 'space', function() { 
     if (!allowed) return; 
     allowed = false; 
     $('#viewport'). 
      dragscrollable(); 
    }); 
    $(document).bind('keyup', 'space', function() { 
     allowed = true; 
     $('#base').off('mousedown'); 
     return false; 
    }); 

}); 

काम करता है:

+0

+1 मुझे इसे मारो। –

संबंधित मुद्दे