के साथ वास्तविक ऑफ़सेट तत्व के बाएं/शीर्ष प्राप्त करें मैं पृष्ठ पर किसी तत्व के निर्देशांक प्राप्त करने का प्रयास कर रहा हूं। मैं इसे प्राप्त करने के लिए मानक तरीका का उपयोग कर दिया गया है:इनलाइन ऑफ़सेटपेरेंट
var el = element, pos = {x: 0, y: 0};
while (el) {
pos.x += el.offsetLeft;
pos.y += el.offsetTop;
el = el.offsetParent;
}
लेकिन इस पद्धति असफल हो जाती है जब प्रश्न में तत्व display: block
है, और offsetParents में से एक display: inline;
है। इस तथ्य को this thread में वर्णित की वजह से है:
कुछ jQuery के साथ की कोशिश के बाद यह पता चला है कि उनके .offset()
-method सही रिटर्न ऑफसेट, और मैं स्रोत के माध्यम से देखा है, लेकिन वास्तव में कैसे नहीं मिला वे करते हैं। तो मेरा सवाल है: मैं सही स्थिति कैसे प्राप्त करूं? मैं इस प्रोजेक्ट के लिए jQuery का उपयोग नहीं कर सकता, और the thread described earlier में विधि बोझिल है, एक तत्व जोड़ना और परीक्षण बहुत अधिक काम (प्रदर्शन परिप्रेक्ष्य) है, और Element.getBoundingClientRect
का उपयोग या तो उपलब्ध नहीं है।
आप इसे आज़मा रहे आप Apple.com पर जा सकते हैं निम्नलिखित में चुनाव और प्रकार के अपने डिबगर खोलने की तरह महसूस करते हैं:
var el, el2;
el = el2 = document.querySelector('#worldwide span');
var pos = {x: 0, y: 0};
while (el2) {
pos.x += el2.offsetLeft;
pos.y += el2.offsetTop;
el2 = el2.offsetParent;
}
alert("Calculated position: " + pos.x + "x" + pos.y + " window size: " + screen.width + "x" + screen.height);
इस कोड के साथ
मैं:। Calculated position: 1354x988 window size: 1280x800
(यानी ऑफसेट बाईं का तरीका है स्क्रीन, जो यह स्पष्ट रूप से नहीं है)
यह कैसे संभव है? कोई काम-आसपास के विचार? अनुमानों? यह सटीक नहीं होना चाहिए, लेकिन इसे पहले से बेहतर होना चाहिए। धन्यवाद।
संपादित करें: यह वेबकिट प्रतिपादन इंजन के लिए स्पष्ट करने के लिए है।