2009-07-30 11 views
32

मेरे पास एक लिंक है, जब क्लिक किया गया है, तो मैं इसे माउस की स्थिति को दाईं ओर (या उस मामले के लिए व्यूपोर्ट के भीतर कहीं भी स्थानांतरित करना चाहता हूं)।jQuery सेट माउस स्थिति (कर्सर स्थिति नहीं)

कोड में यह शायद निम्न के समान दिखेगा:

$('a#expand').click(function(e){ 
    $(document) 
     .mouseXPos(e.pageX + 50) 
     .mouseYPos(e.pageY + 50); 
}); 

श्रृंखलन आवश्यक नहीं हो सकता है, ज़ाहिर है, लेकिन एक समान 'सेट माउस स्थिति' कार्यक्षमता क्या मैं के बाद हूँ।

मैंने कर्सर की स्थिति को टेक्स्ट में किसी निश्चित स्थान पर ले जाने के लिए समाधान देखा है, लेकिन मैंने उनसे अधिक लाभ नहीं उठाया।

+1

ऐसा कुछ ऐसा लगता है जो वास्तव में उपयोगकर्ताओं को परेशान करेगा! मुझे आशा है कि ऐसा करने के लिए आपके पास एक अच्छा कारण है, न कि यह संभव है। – ScottE

+0

मुझे आगे समझा जाना चाहिए। मैं jQuery के लिए ब्रायन की महान होवरइन्टेंट प्लगइन का उपयोग कर रहा हूं, जिसमें एक मेनू है जिसमें मेनू को विस्तारित एक लिंक किया गया टैब शामिल है। मैं स्लाइडिंग को एनिमेट कर रहा हूं, लेकिन होवर इंंटेंट होवर बंद कर देता है अगर माउस एनिमेटिंग करते समय भी रहता है। अजीब लगता है लेकिन यह प्लगइन क्लासिक माउसेंटर के बाकी हिस्सों को पकड़ता है/मिस्पायर छोड़ देता है जो आम तौर पर देवताओं को चलाता है। वह इस मुद्दे के बारे में जानता है और अगली रिलीज के लिए इस पर काम कर रहा है। किसी भी तरह से माउस को एक पिक्सेल ऊपर ले जाने में सक्षम होना बहुत अच्छा होगा। या तो क्लाइंट-साइड या सर्वर-साइड समाधान अद्भुत होगा। – Michael

+1

जबकि यह पहली बार ब्लश की तरह लगता है जो उपयोगकर्ताओं को परेशान करेगा, मुझे एक ऐसी स्थिति का वर्णन करने दें जहां माउस को स्थानांतरित करने से माउस को परेशान नहीं किया जा सकेगा और इसे आगे बढ़ाना वास्तव में उन्हें खुश कर सकता है ... कल्पना करें कि आप किसी वेब पेज पर कुछ तत्वों पर क्लिक करते हैं और तत्व पेज पुनर्व्यवस्थित; यदि माउस स्थानांतरित नहीं हुआ है, तो आप अब उस तत्व पर नहीं हैं जिस पर आपने क्लिक किया था; माउस पृष्ठ के सापेक्ष स्थानांतरित नहीं हुआ है लेकिन यह _has_ * सामग्री * के सापेक्ष स्थानांतरित हो गया है। माउस को स्थानांतरित नहीं किया गया अनुभव प्रदान करने के लिए पृष्ठ के सापेक्ष माउस को "चलाना" आवश्यक हो सकता है। –

उत्तर

53

जावास्क्रिप्ट के माध्यम से माउस को स्थानांतरित करने के लिए कोई तंत्र नहीं है।

+0

एएसपी.Net, AJAX, jQuery, C# के लिए कोई भी तंत्र? मुझे पता है कि माउस की स्थिति jQuery के माध्यम से पढ़ी जा सकती है, शायद डीओएम के माध्यम से इसे बेनकाब करने का कोई तरीका है? – Michael

+5

@ माइकल: नहीं, माउस की स्थिति केवल जावास्क्रिप्ट के लिए पढ़ी जाती है। AJAX क्लाइंट पर HTTP सर्वर के माध्यम से सर्वर से बात करने के लिए जावास्क्रिप्ट निष्पादित करने के लिए संचार का तरीका है। ASP.NET/C# सर्वर पक्ष है और इसका दायरा उस सर्वर तक ही सीमित है जिस पर यह निष्पादित होता है। क्लाइंट के माउस को नियंत्रित करने का एकमात्र तरीका क्लाइंट साइड एप्लिकेशन के साथ है जो उपयोगकर्ता स्पेस में चल रहा है जिसका अर्थ है कि उन्हें कुछ डाउनलोड और इंस्टॉल करना है। – MyItchyChin

+1

हालांकि यह काफी देर से प्रतिक्रिया है, धन्यवाद CptSkippy। मैंने अपने प्रश्न पर आपकी टिप्पणी के उत्तर के रूप में उभरा और चिह्नित किया। – Michael

9

मैं गलत हो सकता हूं, लेकिन मुझे नहीं लगता कि माउस पॉइंटर को क्लाइंट-साइड स्क्रिप्ट से ले जाना संभव है। दुर्व्यवहार की संभावना को देखते हुए, मुझे उम्मीद है कि यह नहीं है।

+0

मैंने निश्चित रूप से इस बारे में चिंता के बारे में सोचा था। क्या मुझे कभी ऐसी शक्ति में आना चाहिए, मुझे यकीन है कि इसका समाधान मिल जाएगा और आपको बताएगा। क्या आप ऐसा करने के लिए सर्वर-साइड स्क्रिप्ट के बारे में जानते हैं? धन्यवाद। – Michael

+0

@ माइकल: सर्वर-साइड स्क्रिप्ट क्लाइंट के माउस पॉइंटर को स्थानांतरित करने की भी कम संभावना है। यह * माउस सूचक को ActiveX नियंत्रण (केवल इंटरनेट एक्सप्लोरर), कस्टम प्लगइन, .NET नियंत्रण, या संभवतः हस्ताक्षरित जावा एप्लेट द्वारा स्थानांतरित करना संभव हो सकता है। –

4

जावास्क्रिप्ट या किसी भी क्लाइंट-साइड स्क्रिप्ट के माध्यम से माउस स्थिति परिवर्तन को पूरा करने का कोई तरीका नहीं है। इसका एकमात्र कारण क्लाइंट साइड स्क्रिप्ट क्षमता को पहले बताए गए दुरुपयोग के लिए नहीं देना है।

4

आप कर्सर को छुपा सकते हैं, और एक अलग जगह पर एक और दिखा सकते हैं।

उदाहरण के लिए भूलभुलैया में घूमते समय अच्छा होना चाहिए। कर्सर ऐसा लगता है जैसे यह बंद हो गया है लेकिन जब आप विंडो के बाहर जाते हैं तो आप इसे फिर से देखेंगे।

+0

क्या मुझे पता चलेगा कि इसे कैसे कार्यान्वित करना संभव है? – heyanshukla

+1

@heyanshukla [एक कर्सर] छिपाने के लिए (http://www.w3schools.com/cssref/pr_class_cursor.asp), आप 'document.body.style.cursor = url ('blank.ico') का उपयोग कर सकते हैं;' अगर आपके पास कुछ खाली आइकन फ़ाइल है। या आप 'document.body.style.cursor = 'none' सेट कर सकते हैं; लेकिन यह केवल फ़ायरफ़ॉक्स में ही काम करता है। बेशक यह माउस निर्देशांक को कस्टमाइज़ नहीं कर सकता है, केवल कर्सर को छुपा सकता है। – Stano

+0

@Satno, अपडेट के लिए धन्यवाद। – heyanshukla

2

जैसा कि अन्य उपयोगकर्ताओं ने पहले ही उल्लेख किया है, ऐसा करने के लिए जावास्क्रिप्ट कोई भी तंत्र नहीं है। हालांकि, आप माउस को अक्षम कर सकते हैं और आपको जो चाहिए उसे करने के लिए कर्सर को कार्यान्वित कर सकते हैं। यहां एक लिंक है जो बताता है कि कैसे। How to implement a custom cursor