screenX
/ Y
, clientX
/ Y
और pageX
/ के बीच क्या अंतर है Y
?
आईपैड सफारी के लिए भी, डेस्कटॉप पर समान गणनाएं हैं- या व्यूपोर्ट के कारण कुछ अंतर है?
यह बहुत अच्छा होगा यदि आप मुझे एक उदाहरण के लिए इंगित कर सकते हैं।
screenX
/ Y
, clientX
/ Y
और pageX
/ के बीच क्या अंतर है Y
?
आईपैड सफारी के लिए भी, डेस्कटॉप पर समान गणनाएं हैं- या व्यूपोर्ट के कारण कुछ अंतर है?
यह बहुत अच्छा होगा यदि आप मुझे एक उदाहरण के लिए इंगित कर सकते हैं।
जवाबों:
जावास्क्रिप्ट में:
pageX
, pageY
, screenX
, screenY
, clientX
, और clientY
रिटर्न एक नंबर जो भौतिक "CSS पिक्सेल" की संख्या बताने वाले एक बिंदु संदर्भ बिंदु से है। घटना बिंदु वह स्थान है जहां उपयोगकर्ता ने क्लिक किया, संदर्भ बिंदु ऊपरी बाएँ में एक बिंदु है। ये गुण उस संदर्भ बिंदु से क्षैतिज और ऊर्ध्वाधर दूरी लौटाते हैं।
pageX
और pageY
:
ब्राउज़र में पूरी तरह से प्रदान की गई सामग्री क्षेत्र के शीर्ष बाईं ओर सापेक्ष। यह संदर्भ बिंदु ऊपरी बाईं ओर URL बार और बैक बटन के नीचे है। यह बिंदु ब्राउज़र विंडो में कहीं भी हो सकता है और वास्तव में स्थान बदल सकता है यदि पृष्ठों के भीतर एम्बेडेड स्क्रॉल करने योग्य पृष्ठ हैं और उपयोगकर्ता स्क्रॉलबार ले जाता है।
screenX
और screenY
:
भौतिक स्क्रीन / मॉनिटर के ऊपरी बाएँ के सापेक्ष, यह संदर्भ बिंदु केवल तभी चलता है जब आप मॉनिटर या मॉनिटर रिज़ॉल्यूशन की संख्या बढ़ाते या घटाते हैं।
clientX
और clientY
: ब्राउज़र विंडो
के कंटेंट एरिया ( व्यूपोर्ट ) के ऊपरी बाएं किनारे से संबंधित । यदि उपयोगकर्ता ब्राउज़र के भीतर से कोई स्क्रॉलबार ले जाता है तो भी यह बिंदु आगे नहीं बढ़ता है।
उस दृश्य के लिए जिस पर ब्राउज़र गुण का समर्थन करते हैं:
http://www.quirksmode.org/dom/w3c_cssom.html#t03
w3schools में एक ऑनलाइन जावास्क्रिप्ट दुभाषिया और संपादक हैं ताकि आप देख सकें कि प्रत्येक क्या करता है
http://www.w3schools.com/jsref/tryit.asp?filename=try_dom_event_clientxy
<!DOCTYPE html>
<html>
<head>
<script>
function show_coords(event)
{
var x=event.clientX;
var y=event.clientY;
alert("X coords: " + x + ", Y coords: " + y);
}
</script>
</head>
<body>
<p onmousedown="show_coords(event)">Click this paragraph,
and an alert box will alert the x and y coordinates
of the mouse pointer.</p>
</body>
</html>
यहाँ एक तस्वीर है जो pageY
और के बीच के अंतर को बता रही है clientY
।
उसी के लिए pageX
और clientX
क्रमशः।
pageX/Y
निर्देशांक पूरे रेंडर पेज के ऊपरी बाएँ कोने के सापेक्ष हैं (स्क्रॉलिंग द्वारा छिपाए गए भागों सहित),
जबकि clientX/Y
निर्देशांक पृष्ठ के दृश्य भाग के ऊपरी बाएँ कोने के सापेक्ष होते हैं, तो ब्राउज़र विंडो के माध्यम से "देखा" जाता है।
आपको शायद कभी ज़रूरत नहीं पड़ेगी screenX/Y
screenX/Y
है?
pageX/pageY
इसका उपयोग किया जाना चाहिए clientX/clientY
?
<html>
सीएसएस पिक्सल में तत्व के सापेक्ष निर्देशांक देता है ।viewport
सीएसएस पिक्सल के सापेक्ष निर्देशांक देता है ।screen
डिवाइस पिक्सल में सापेक्ष निर्देशांक देता है ।अपने आखिरी सवाल के बारे में अगर गणना डेस्कटॉप और मोबाइल ब्राउज़र पर समान है ... एक बेहतर समझ के लिए - मोबाइल ब्राउज़र पर - हमें दो नई अवधारणा को अलग करने की आवश्यकता है: लेआउट व्यूपोर्ट और विजुअल व्यूपोर्ट । दृश्य व्यूपोर्ट उस पृष्ठ का हिस्सा है जिसे वर्तमान में ऑनस्क्रीन दिखाया गया है। लेआउट व्यूपोर्ट एक डेस्कटॉप ब्राउज़र पर प्रस्तुत पूर्ण पृष्ठ का पर्याय है (उन सभी तत्वों के साथ जो वर्तमान व्यूपोर्ट पर दिखाई नहीं देते हैं)।
मोबाइल ब्राउज़र पर pageX
और pageY
अभी भी सीएसएस पिक्सल के पेज के सापेक्ष हैं ताकि आप दस्तावेज़ पृष्ठ के सापेक्ष माउस निर्देशांक प्राप्त कर सकें। दूसरी ओर clientX
और दृश्य व्यूपोर्ट केclientY
संबंध में माउस निर्देशांक को परिभाषित करता है ।
दृश्य व्यूपोर्ट और लेआउट व्यूपोर्ट के बीच अंतर के बारे में यहां एक और स्टैकओवरफ्लो धागा है: दृश्य व्यूपोर्ट और लेआउट व्यूपोर्ट के बीच अंतर?
एक और अच्छा संसाधन: http://www.quirksmode.org/mobile/viewports2.html
मुझे इस पृष्ठ पर सीधे एक घटना जोड़ने और अपने लिए क्लिक करने में क्या मदद मिली! डेवलपर टूल / फायरबग आदि में अपना कंसोल खोलें और इसे पेस्ट करें:
document.addEventListener('click', function(e) {
console.log(
'page: ' + e.pageX + ',' + e.pageY,
'client: ' + e.clientX + ',' + e.clientY,
'screen: ' + e.screenX + ',' + e.screenY)
}, false);
Click anywhere
इस स्निपेट के साथ, आप स्क्रॉल करते ही अपनी क्लिक स्थिति को ट्रैक कर सकते हैं, ब्राउज़र विंडो को स्थानांतरित कर सकते हैं, आदि।
ध्यान दें कि जब आप शीर्ष पर सभी तरह से स्क्रॉल किए जाते हैं तो पेजएक्स / वाई और क्लाइंटएक्स / वाई एक ही होते हैं!
उन के बीच का अंतर काफी हद तक इस बात पर निर्भर करेगा कि आप वर्तमान में किस ब्राउज़र का उल्लेख कर रहे हैं। प्रत्येक व्यक्ति इन गुणों को अलग-अलग लागू करता है, या बिल्कुल भी नहीं। डोम और जावास्क्रिप्ट इवेंट्स जैसे W3C मानकों के संबंध में Quirksmode में ब्राउज़र के अंतर के बारे में शानदार दस्तावेज हैं।