2008-12-28 9 views
14

क्या यह संभव है एक पाठ नोड के ज्यामितीय स्थिति (या तो पेरेंट तत्व, पेज, आदि से अर्थात शीर्ष/बाईं ऑफसेट) को पुनः प्राप्त करने के लिए?पुन: प्राप्त डोम textnode स्थिति

उत्तर

13

सीधे नहीं। टेक्स्ट नोड में मूल रूप से-आईई ऑफसेट * (और समान) एक्सटेंशन ऑन-व्यूपोर्ट पोजिशनिंग को मापने के लिए नहीं हैं।

केवल आईई पर, आप टेक्स्टरेंज ऑब्जेक्ट बना सकते हैं, श्रमिक रूप से टेक्स्ट नोड की सीमाओं के साथ संरेखित करने का प्रयास करते हैं, फिर टेक्स्टरेंज के बाउंडिंग लेफ्ट/बाउंडिंग टोप को मापते हैं, और इसे मूल तत्व की स्थिति में जोड़ते हैं (द्वारा प्राप्त सामान्य साधन)। हालांकि यह एक संभावित रूप से wobbly एकल ब्राउज़र समाधान के लिए काम का एक गुच्छा है।

एक और दृष्टिकोण जिसे आप दूर करने में सक्षम हो सकते हैं, पाठ को एक स्पैन तत्व (या तो दस्तावेज़ में, या गतिशील रूप से और/या अस्थायी रूप से स्क्रिप्ट द्वारा) लपेटकर, और स्थिति को मापने के लिए अवधि का उपयोग करके, यह मानते हुए कि यह नहीं है स्थिति को प्रभावित कर सकते हैं कि किसी भी अतिरिक्त शैलियों को उठा रहा है। ध्यान दें कि एक लपेटा हुआ अवधि अपेक्षित दाएं/नीचे मान नहीं दे सकता है; आप इसके साथ क्या करना चाहते हैं इसके आधार पर, आप पहले और आखिरी चरित्र या कुछ अन्य व्यवस्था को लपेटकर समाप्त कर सकते हैं।

सारांश में: urgh, अच्छा कुछ भी नहीं।

+0

आपके विचार का उपयोग किया - अंतर्दृष्टि के लिए धन्यवाद! http://stackoverflow.com/questions/6990350/jquery-get-text-currently-shown-ie-not-just-visible/6990382#6990382 – AlienWebguy

+0

शर्म की बात है लेकिन एक अवधि में लपेटने से पृष्ठ को संशोधित किया जा रहा है, इसलिए मुझे कोई उपयोग नहीं है – SuperUberDuper

0

this article पर एक नजर डालें - यह offsetParent संपत्ति का उपयोग करता रिकर्सिवली यह पता लगाने की ऑफसेट।

मैं हमेशा इस तरह ब्राउज़र-अलग सामान के लिए अपने स्वयं के तरीकों रोलिंग से अधिक jQuery की सिफारिश करेंगे। jquery CSS functions में आपको आवश्यक विधियों की प्रतीत होती है!

+1

दुर्भाग्य से, डोम पाठ नोड्स offsetLeft/offsetTop गुण है लगता नहीं है। और jQuery टेक्स्ट नोड्स को अच्छी तरह से संभाल नहीं करता है: मैं नहीं जानता कि उनके लिए चयनकर्ता अभिव्यक्ति कैसे लिखनी है (कभी नहीं मानें कि बच्चे() टेक्स्ट नोड्स नहीं लौटाते हैं)। – dpq

0

कोई अंतर्निहित होती है, क्रॉस-ब्राउज़र यह करने के लिए तरीका नहीं है। मैं आयाम प्लगइन के साथ jQuery का प्रयोग करेंगे: http://brandonaaron.net/docs/dimensions/

यह पार ब्राउज़र है और आप ऊंचाई, चौड़ाई और एक्स & y ऑफसेट, दूसरों के बीच दे देंगे।

संबंधित मुद्दे