दिलचस्प पोस्ट
वितरण, दुर्गों, सेटअपटोल्टों और डिस्टुट 2 के बीच मतभेद? एक फ़ाइल बैच स्क्रिप्ट में एक निर्देशिका है, तो कैसे परीक्षण करें? FFmpeg छवियों से वीडियो बनाने के लिए जावा में एक फ़ाइल का माइम प्रकार प्राप्त करना हमेशा दो दशमलव स्थानों को दिखाने के लिए मैं दशमलव को कैसे स्वरूपित कर सकता हूं? एंड्रॉइड काउंटडाउन टाइमर – अतिरिक्त मिलिसेकंड टिक्सेस के बीच में विलंब होता है ऐप के भीतर ही लोगों को बदलना एचटीएमएल टैग्स <div> और <span> के बीच अंतर क्या है? पीएचपी में प्रयास-पकड़ का प्रदर्शन # यदि DEBUG बनाम कंडीशनल ("DEBUG") DataTemplate के साथ एक सूची बॉक्स में एक विशिष्ट आइटम तक कैसे पहुंचें? एक नई रेल परियोजना में SQLite से PostgreSQL में बदलें पी के साथ डेटाबेस से गतिशील छवि प्रदर्शित करें: ग्राफिक इमेज और स्ट्रीमेड कंटेंट सी #: "System.Object" और "ऑब्जेक्ट" के बीच अंतर जीडीबी के साथ प्रोग्राम के मुख्य डंप फ़ाइल का विश्लेषण कैसे करें?

बिना माउस के बिना माउस की स्थिति कैसे प्राप्त करें?

क्या माउस लोड किए बिना माउस आंदोलन घटना के बिना पेज लोड किए जाने के बाद जावास्क्रिप्ट के साथ माउस की स्थिति प्राप्त करना संभव है?

वेब के समाधान से एकत्रित समाधान "बिना माउस के बिना माउस की स्थिति कैसे प्राप्त करें?"

वास्तविक उत्तर: नहीं, यह संभव नहीं है।

ठीक है, मैंने अभी एक तरह से सोचा है। पूरे पृष्ठ को कवर करने वाली एक डिवा के साथ अपने पेज को ओवरले करें इसके अंदर, 2,000 x 2,000 <a> तत्व बनाएं (ताकि :hover छद्म-वर्ग आईई 6 में काम करेगा, देखें), आकार में प्रत्येक 1 पिक्सेल। एक सीएसएस बनाएं :hover उन तत्वों के लिए :hover नियम जो किसी संपत्ति को बदलते हैं (हम font-family कहते हैं)। आपके लोड हैंडलर में, 4 मिलियन <a> तत्वों में से प्रत्येक के माध्यम से चक्र, currentStyle / getComputedStyle() जब तक कि आप मंडराने वाले फ़ॉन्ट से कोई नहीं ढूंढें दस्तावेज के भीतर समन्वय प्राप्त करने के लिए इस तत्व से पीछे हटाना।

NB यह मत करो

आप माउससेटर को हुक कर सकते हैं (यह ईवेंट पन्ने को पुनः लोड करने के बाद निकाल दिया जाता है, जब माउसस्कारर पेज के अंदर होता है)। भ्रष्ट कोड का विस्तार करने की चाल करना चाहिए:

 var x = null; var y = null; document.addEventListener('mousemove', onMouseUpdate, false); document.addEventListener('mouseenter', onMouseUpdate, false); function onMouseUpdate(e) { x = e.pageX; y = e.pageY; } function getMouseX() { return x; } function getMouseY() { return y; } 

आप एक्स-वाई को माउसलेवे-इवेंट पर रिक्त करने के लिए भी सेट कर सकते हैं। तो आप देख सकते हैं कि उपयोगकर्ता आपके पृष्ठ पर कर्सर के साथ है या नहीं।

आप क्या कर सकते हैं आपके कर्सर के x और y निर्देशांकों के लिए चर बनाते हैं, जब भी माउस चालें और फ़ंक्शन को किसी फ़ंक्शन को एक स्थान पर कॉल करें, जो आपको संग्रहीत स्थिति में की जरूरत है।

इस कोर्स के लिए नकारात्मक पक्ष यह है कि माउस का कम से कम एक प्रारंभिक आंदोलन यह काम करने के लिए आवश्यक है। जब तक कर्सर कम से कम एक बार अपनी स्थिति का अद्यतन करता है, तब तक हम अपनी स्थिति को ढूंढने में सक्षम होते हैं, भले ही यह फिर से चलता है या नहीं।

 var cursorX; var cursorY; document.onmousemove = function(e){ cursorX = e.pageX; cursorY = e.pageY; } setInterval(checkCursor, 1000); function checkCursor(){ alert("Cursor at: " + cursorX + ", " + cursorY); } 

पूर्ववर्ती कोड एक बार एक संदेश के साथ अपडेट होता है जिसमें आपका कर्सर होता है। आशा है कि ये आपकी मदद करेगा।

आप टिम डाउन के सुझाव के जैसा कुछ भी करने की कोशिश कर सकते हैं – लेकिन स्क्रीन पर प्रत्येक पिक्सेल के तत्वों के बजाय, सिर्फ 2-4 तत्व (बक्से) बनाएं, और स्क्रीन पर अभी तक संभव स्थान को विभाजित करने के लिए गतिशील रूप से उनके स्थान, चौड़ाई, ऊंचाई को बदल दें 2-4 बार फिर से, इस प्रकार माउस वास्तविक स्थान को शीघ्रता से ढूंढना।

उदाहरण के लिए – पहले तत्व सही और बायां आधा स्क्रीन लेते हैं, उसके बाद ऊपरी और निचले आधे भाग होते हैं। अब तक हम पहले से ही जानते हैं कि माउस किस किनारे की स्क्रीन पर स्थित है, वे दोहरा सकते हैं – इस स्थान की कौन सी तिमाही खोजिए …

@ टिम डाउन का उत्तर निष्पादक नहीं है यदि आप 2,000 x 2,000 <a> तत्व प्रदान करते हैं:

ठीक है, मैंने अभी एक तरह से सोचा है। पूरे पृष्ठ को कवर करने वाली एक डिवा के साथ अपने पेज को ओवरले करें इसके अंदर, 2,000 x 2,000 तत्वों (कहें) बनाएँ (ताकि: छद्म छद्म-वर्ग आईई 6 में काम करेगा, देखें), आकार में प्रत्येक 1 पिक्सेल। एक सीएसएस बनाएं: उन तत्वों के लिए हॉवर नियम जो एक संपत्ति बदलते हैं (मान लें कि फोंट-परिवार)। अपने लोड हैंन्डलर में, 4 मिलियन तत्वों में से प्रत्येक के माध्यम से चक्र, मौजूदा स्टाइल / लाईकॉम्प्टेड स्टाइल () की जांच करें जब तक कि आप एक होवर फ़ॉन्ट के साथ नहीं पाते। दस्तावेज के भीतर समन्वय प्राप्त करने के लिए इस तत्व से पीछे हटाना।

NB यह मत करो

लेकिन आपको एक बार में 40 लाख तत्व प्रस्तुत करना नहीं है, इसके बजाय द्विआधारी खोज का उपयोग करें। बस इसके बजाय 4 <a> तत्वों का उपयोग करें:

  • चरण 1: प्रारंभिक खोज क्षेत्र के रूप में पूरी स्क्रीन पर गौर करें
  • चरण 2: खोज क्षेत्र को 2 x 2 = 4 आयताकार <a> तत्वों में विभाजित करें
  • चरण 3: getComputedStyle() फ़ंक्शन का उपयोग करना निर्धारित करें जिसमें आयताकार माउस घूमता है
  • चरण 4: खोज क्षेत्र को उस आयत में कम करें और चरण 2 से दोहराएं।

इस तरह आपको अधिकतम 11 बार इन चरणों को दोहराने की आवश्यकता होगी, आपकी स्क्रीन पर विचार 2048 पीएक्स से अधिक व्यापक नहीं है।

तो आप अधिकतम 11 x 4 = 44 <a> तत्व उत्पन्न करेंगे।

अगर आपको पिक्सेल पर माउस की स्थिति ठीक से निर्धारित करने की आवश्यकता नहीं है, लेकिन 10px सटीक ठीक कहें। आप अधिकतम 8 बार चरणों को दोहरा सकते हैं, इसलिए आपको अधिकतम 8 x 4 = 32 <a> तत्वों को आकर्षित करना होगा।

इसके अलावा भी <a> तत्वों को नष्ट करना और नष्ट करना कार्य नहीं करता है क्योंकि DOM आमतौर पर धीमा है इसके बजाय, आप केवल प्रारंभिक 4 <a> तत्वों का पुनः उपयोग कर सकते हैं और अपनी top , left , width और height को समायोजित कर सकते हैं top कि आप कदमों के माध्यम से लूप करते हैं

अब, 4 बनाना <a> एक ओवरकिल है इसके बजाय, प्रत्येक आयत में getComputedStyle() परीक्षण के लिए जब आप उसी <a> तत्व का पुनः उपयोग कर सकते हैं इसलिए, 2 x 2 <a> तत्वों में खोज क्षेत्र को विभाजित करने के बजाय केवल एक ही <a> तत्व को top और left शैली गुणों के साथ ले जाकर पुनः उपयोग में <a>

इसलिए, आपको केवल एक ही <a> तत्व तत्व की width और height अधिकतम 11 बार बदलना है, और इसके top और left अधिकतम 44 बार बदलना होगा और आपके पास सटीक माउस स्थिति होगी

मैं सोचता हूं कि शायद आपके पास एक टाइमर के साथ एक माता पिता पृष्ठ है और कुछ निश्चित समय या कार्य पूर्ण होने के बाद, आप उपयोगकर्ता को एक नए पेज पर अग्रेषित कर सकते हैं। अब आप कर्सर की स्थिति चाहते हैं, और क्योंकि वे प्रतीक्षा कर रहे हैं, वे आवश्यक रूप से माउस को छू नहीं रहे हैं। तो मानक ईवेंट का उपयोग करके माता-पिता के पृष्ठ पर माउस को ट्रैक करें और अंतिम पृष्ठ को प्राप्त करें या पोस्ट चर में नए पेज पर पास करें

आप अपने माता पिता के पृष्ठ पर जेहिंगिंग कोड का उपयोग कर सकते हैं ताकि नवीनतम स्थिति हमेशा एक वैश्विक चर में उपलब्ध हो।

 var cursorX; var cursorY; document.onmousemove = function(e){ cursorX = e.pageX; cursorY = e.pageY; } 

यह उन उपयोगकर्ताओं की सहायता नहीं करेगा जो आपके पृष्ठ से अन्य तरीकों से इस पृष्ठ पर नेविगेट करते हैं।

मैंने एक क्षैतिज / ऊर्ध्वाधर खोज को लागू किया है, (पहले एक क्षैतिज लाइन लिंक से भरा डिविज़ बनाकर क्षैतिज रूप से व्यवस्थित किया है, फिर क्षैतिज रेखा से जुड़ी एक पूर्ण लिंक्स को खड़ी रूप से व्यवस्थित करें, और केवल टाप डाउन की ओर ऊपर की तरह की तरह देखें) यह बहुत तेजी से काम करता है दुर्भाग्य से, क्रोम 32 पर KDE पर काम नहीं करता है।

jsfiddle.net/5XzeE/4/

 var x = 0; var y = 0; document.addEventListener('mousemove', onMouseMove, false) function onMouseMove(e){ x = e.clientX; y = e.clientY; } function getMouseX() { return x; } function getMouseY() { return y; } 

आपको कर्सर का स्थान प्राप्त करने के लिए माउस को स्थानांतरित करने की आवश्यकता नहीं है। स्थान भी माउसमेव के अलावा अन्य घटनाओं पर रिपोर्ट किया गया है उदाहरण के तौर पर यहां एक क्लिक-ईवेंट है :

 document.body.addEventListener('click',function(e) { console.log("cursor-location: " + e.clientX + ',' + e.clientY); });