में अलग-अलग मान देता है मेरे पास एक छवि नियंत्रण है और मुझे छवि नियंत्रण के शीर्ष पर कुछ तत्व रखने की आवश्यकता है। जब मैंने getBoundingClientRect() का उपयोग किया, तो यह आईई (7,8 और 9) में काम कर रहा है लेकिन यह फ़ायरफ़ॉक्स और क्रोम में अलग-अलग मान दे रहा है। क्या तत्व के बाउंडिंग आयत को प्राप्त करने के लिए कोई अन्य फ़ंक्शन उपलब्ध है?क्यों बाउंडिंग क्लाइंटरटेक्ट आईई और फ़ायरफ़ॉक्स
उत्तर
getBoundingClientRect
के लिए पुराने IE प्रलेखन से प्रशस्ति पत्र:: यहाँ comp.lang.javascript से उसकी की एक टिप है "माइक्रोसॉफ्ट इंटरनेट एक्सप्लोरर 5 में, खिड़की के ऊपरी-बाएं के संबंध में 2,2 (पिक्सेल) पर है सही ग्राहक। " यह अभी भी वैध प्रतीत होता है।
आईई 9 उपयोग में <meta http-equiv="x-ua-compatible" content="ie=edge"/>
ऊपरी-बाएं कोने को अपनी सही स्थिति (0,0) पर "सेट" करता है।
d4rkpr1nc3 के उत्तर के रूप में, आप उन मानों को अन्य तरीकों से प्राप्त कर सकते हैं, लेकिन परिणाम भी उपयोग किए गए ब्राउज़र पर निर्भर करते हैं। मुझे लगता है कि आपको इस समस्या के लिए थोड़ा अलग दृष्टिकोण की आवश्यकता होगी। नीचे दिए गए कोड को चेक करें, यह आपको कुछ विचार दे सकता है।
<DIV id="imagecontrol" style="position:absolute;width:200px;height:200px;">
<DIV id="topleft" style="position:absolute;width:100px;height:100px;left:0px;top:0px;"></DIV>
<DIV id="topright" style="position:absolute;width:100px;height:100px;right:0px;top:0px;"></DIV>
<DIV id="bottomleft" style="position:absolute;width:100px;height:100px;left:0px;bottom:0px;"></DIV>
<DIV id="bottomright" style="position:absolute;width:100px;height:100px;right:0px;bottom:0px;"></DIV>
</DIV>
वैसा करने के लिए, इस तरह ऑफसेट इस्तेमाल कर सकते हैं:
var top = element.offsetTop;
var left = element.offsetLeft;
var width = element.offsetWidth;
var height = element.offsetHeight;
var bottom = top + height;
var right = left + width;
वास्तव में नहीं। उदाहरण के लिए, 'getBoundingClientRect' खाता सीएसएस रूपांतरणों को ध्यान में रखता है। – tillda
दरअसल नहीं: ऑफसेट टॉप एक स्थित माता-पिता से संबंधित स्थिति है, यदि कोई है, तो स्थिति वाले किसी भी माता-पिता: सापेक्ष/निश्चित/पूर्ण ऑफसेट मान को प्रभावित करेगा (domcument.body से ऑफसेट मान बनाम जो हम आम तौर पर चाहते हैं) – dougwig
इसने मेरे लिए एक समस्या हल की जहां हम एक छिपे हुए आईफ्रेम से 'range.getBoundingClient() 'का उपयोग करने की कोशिश कर रहे थे और फ़ायरफ़ॉक्स और आईई एक्स/वाई/चौड़ाई/ऊंचाई के लिए सभी शून्य (0) लौट रहे थे। @ d4rkpr1nc3 thx! –
मूल्यों शायद थोड़ा अलग ब्राउज़रों लेकिन getBoundingClientRect()
में विभिन्न अभी भी प्रदर्शन और सटीकता के लिए अपने सबसे अच्छे शर्त है। इसके द्वारा किए गए निर्देशांक दस्तावेज़ के बजाए व्यूपोर्ट के सापेक्ष हैं, इसलिए, आपको उस विंडो/दस्तावेज़ पर स्क्रॉल मानों का उपयोग करने के लिए खाते की आवश्यकता होगी।
यहाँ इस बारे में एक अच्छा ब्लॉग पोस्ट है:
डेविड मार्क इस सामान पर अच्छा है।
https://groups.google.com/forum/?fromgroups#!topic/comp.lang.javascript/zWJaFM5gMIQ
- 1. फ़ायरफ़ॉक्स और आईई
- 2. फ़ायरफ़ॉक्स और आईई
- 3. इफ्रेम और फ़ायरफ़ॉक्स/आईई बग
- 4. फ़ायरफ़ॉक्स और ओपेरा/क्रोम/आईई
- 5. आईई 9 और फ़ायरफ़ॉक्स 13
- 6. आईई/क्रोम और फ़ायरफ़ॉक्स/ओपेरा
- 7. आईई और फ़ायरफ़ॉक्स में window.onmousemove
- 8. आईई सशर्त टिप्पणियाँ और क्रोम/फ़ायरफ़ॉक्स
- 9. आईई से फ़ायरफ़ॉक्स
- 10. क्यों आईई
- 11. सीएसएस: आईई और फ़ायरफ़ॉक्स में नीली सीमा केवल?
- 12. बाउंडिंग एलीपसे
- 13. इनलाइन-ब्लॉक: फ़ायरफ़ॉक्स 4 बनाम आईई 9
- 14. फ़ायरफ़ॉक्स और आईई में कस्टम स्क्रॉल कैसे प्राप्त करें?
- 15. आईई और फ़ायरफ़ॉक्स में टेक्स्टरेरा की समान चौड़ाई कैसे बनाएं?
- 16. WatiN में फ़ायरफ़ॉक्स और आईई को कैसे स्क्रॉल करें?
- 17. scrollTop फ़ायरफ़ॉक्स और आईई पर काम नहीं करता है?
- 18. जीडब्ल्यूटी: क्रोम और आईई डाउनलोड फ़ाइल क्यों नहीं होगी, जहां फ़ायरफ़ॉक्स होगा?
- 19. क्रोम, फ़ायरफ़ॉक्स और आईई सभी क्यों निश्चित-चौड़ाई चयन नियंत्रण अलग-अलग प्रस्तुत करते हैं?
- 20. क्रोम और आईई
- 21. आईई
- 22. जावास्क्रिप्ट आईई और getElementsByClassName समस्याएं
- 23. नियंत्रण अपने बाउंडिंग बॉक्स के बाहर क्यों खींच सकता है?
- 24. क्रोम और फ़ायरफ़ॉक्स में माउसहेल
- 25. आईई 7 और आईई 8 में मेरी प्रिंट शैलियों को क्यों नहीं दिया जा रहा है?
- 26. शेयरपॉइंट और फ़ायरफ़ॉक्स 3
- 27. क्रोम (वेबकिट) और फ़ायरफ़ॉक्स
- 28. आईई 7 और आईई 8
- 29. आईई 7 और आईई 8
- 30. आईई 7+ में एसएसएल सर्टिफिकेट मिस्चैच, फ़ायरफ़ॉक्स में ठीक 3.6+
क्रोम के समान मान देने के लिए आप ie8 कैसे प्राप्त करते हैं? – SuperUberDuper
@SuperUberDuper मेरे उत्तर का विचार यह है कि आप शायद नहीं कर सकते हैं। लेआउट मॉडल अलग-अलग ब्राउज़रों में डिफेंजर है, खासकर आईई 8 जैसे पुराने लोगों में। हालांकि आप मूल्य के साथ गणित कर सकते हैं, लेकिन यह कैसे करना है इसके बारे में अपने प्रश्न पूछना बेहतर है। – Teemu
ठीक है धन्यवाद !!!!!!! – SuperUberDuper