मैं कोड बनाने की कोशिश कर रहा हूं जो माउस को छोड़े जाने पर माउस पॉइंटर्स की स्थिति प्राप्त करता है। लेकिन जब मैं नीचे दिए गए कोड का उपयोग करता हूं, तो यह केवल माउस पॉइंटर स्थिति को एक बार लौटाता है जब माउस को छोड़ दिया जाता है और इसके लिए माउस की स्थिति फिर से प्राप्त करने के लिए बटन को छोड़ना पड़ता है और फिर से क्लिक करना पड़ता है। मैं इस कोड को कैसे संशोधित कर सकता हूं ताकि यदि माउस को छोड़ दिया जाए, तो माउस पॉइंटर के निर्देशांक हर 0.1 सेकंड में वापस आ जाते हैं। इस प्रकार कोड पता लगाएगा कि क्या बायां माउस बटन दबाया जा रहा है

var canvas = document.getElementById('canvas');
function getCursorPosition(canvas, event) {
        const rect = canvas.getBoundingClientRect()
        const x = event.clientX - rect.left
        const y = event.clientY - rect.top
        console.log("x: " + x + " y: " + y)
    }
canvas.addEventListener('mousedown', function(e) {
        getCursorPosition(canvas, e)
    })
1
Faizan Shah 12 अक्टूबर 2019, 22:03

2 जवाब

सबसे बढ़िया उत्तर

आप "सेटइंटरवल" का उपयोग कर सकते हैं और मिलीसेकंड में प्रत्येक कंसोल के बीच अपना स्वयं का प्रतीक्षा समय निर्दिष्ट कर सकते हैं

    var canvas = document.getElementById('canvas');

    function getCursorPosition(canvas, event) {
      const rect = canvas.getBoundingClientRect()
      const x = event.clientX - rect.left
      const y = event.clientY - rect.top
      console.log("x: " + x + " y: " + y)
    }
    var mousePosition, holding;

    function myInterval() {
      var setIntervalId = setInterval(function() {
        if (!holding) clearInterval(setIntervalId);
        getCursorPosition(canvas, mousePosition);
      }, 100); //set your wait time between consoles in milliseconds here
    }
    canvas.addEventListener('mousedown', function() {
      holding = true;
      myInterval();
    })
    canvas.addEventListener('mouseup', function() {
      holding = false;
      myInterval();
    })
    canvas.addEventListener('mouseleave', function() {
      holding = false;
      myInterval();
    })
    canvas.addEventListener('mousemove', function(e) {
      mousePosition = e;
    })
1
krish 12 अक्टूबर 2019, 21:36

आपको शायद यहां mousemove ईवेंट का उपयोग करना चाहिए:

 var  holding = false;
 var canvas = document.getElementById('canvas');
 function getCursorPosition(canvas, event) {
     const rect = canvas.getBoundingClientRect()
     const x = event.clientX - rect.left
     const y = event.clientY - rect.top
     console.log("x: " + x + " y: " + y)
 }
 canvas.addEventListener('mousedown', function(e) {
     holding = true;

 })
 canvas.addEventListener('mouseup', function(e) {
     holding = false;

 })
   canvas.addEventListener('mousemove', function(e) {
   if(holding == true){
     getCursorPosition(canvas, e)
   }
 })

संपादित करें: जब आप बटन छोड़ते हैं तो आपको होल्डिंग को गलत पर सेट करने की भी आवश्यकता होती है

canvas.addEventListener('mouseleave', function(e) {
     holding = false;

 })
1
Ifaruki 12 अक्टूबर 2019, 19:14