2009-07-18 14 views
18

जब पृष्ठ स्क्रीन से बड़ा होता है तो मैं जावास्क्रिप्ट में किसी पृष्ठ की ऊंचाई प्राप्त करने में असमर्थ हूं।जावास्क्रिप्ट में पृष्ठ की ऊंचाई

मुझे लगा कि यह मुझे सही ऊंचाई मिलेगा:

$(document).height(); 

लेकिन यह है कि केवल स्क्रीन की ऊंचाई, एक ही हो जाता है के रूप में:

$('body').height(); 

एक ही रूप में:

document.offsetHeight; 

किसी कारण से ये सभी उदाहरण केवल स्क्रीन की ऊंचाई लौटाते हैं। क्या कोई मदद कर सकता है?

+0

कौन सा jQuery के संस्करण? दस्तावेज़ों के मुताबिक, '$ (दस्तावेज) .height() 'ने 1.2 – jason

उत्तर

22

jQuery (जो आपके द्वारा निर्दिष्ट किया), $(document).height() का उपयोग करते हुए आप के लिए वास्तव में क्या कह रहे हैं वापस आ जाएगी।

height() विधि का उपयोग स्पष्ट करने के लिए:

$('.someElement').height(); // returns the calculated pixel height of the element(s) 
$(window).height();   // returns height of browser viewport 
$(document).height();  // returns height of HTML document 

मुझे लगता है, कि अगर $(document).height() आप के लिए काम नहीं कर रहा, कुछ गलत है। आप हो सकते हैं:

  1. इसे बहुत जल्दी कॉल करना। जैसे, डीओएम तैयार होने से पहले
  2. कुछ अस्पष्ट फ्लोट्स हैं जो कुछ ब्लॉक स्तर तत्वों को उनकी वास्तविक ऊंचाई तक विस्तारित नहीं कर रहे हैं। इस प्रकार ऊंचाई गणना गड़बड़ाना।
  3. कुछ महत्वपूर्ण है जो बिल्कुल महत्वपूर्ण है। बिल्कुल स्थित तत्व तत्व अपने मूल तत्वों की ऊंचाई गणनाओं में योगदान नहीं देते हैं।
+0

धन्यवाद जेसन। मैंने आपके पहले सुझाव में कहा था कि मैंने समारोह को बहुत जल्दी बुलाया था। प्रत्येक नए पृष्ठ के लिए पृष्ठ के कई हिस्सों को ताज़ा करने के लिए कुछ AJAX सामान काम कर रहे हैं। – jzp74

-1

मुझे लगता है कि आपको window.pageYOffset (पेज को स्क्रॉल किया गया है, पिक्सल में) जोड़ने की आवश्यकता है।

http://www.quirksmode.org/dom/w3c_cssom.html

+0

के बाद पूरे दस्तावेज़ पर ऊंचाई वापस कर दी है, यह ओपी से पूछा गया है उससे काफी अलग है .. – vsync

-1
नहीं

JQuery के बारे में निश्चित। लेकिन यह लिंक आपको विभिन्न गुणों को समझने में मदद कर सकता है और वे विभिन्न ब्राउज़रों में विभिन्न तरीकों से कैसे व्यवहार करते हैं।

http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html

0

यदि आप jQuery का उपयोग करने के साथ शांत हैं, तो शरीर या एचटीएमएल ऊंचाई प्राप्त करने के बारे में क्या? जैसे:

var winHeight = $('body').height(); 
+0

y आप शुद्ध जेएस का उपयोग नहीं करते ... :( – vsync

0

मैं इसकी तलाश कर रहा था और यहां उतरा। Jquery के बिना, आप इसे सादे जेएस के साथ भी प्राप्त कर सकते हैं। नीचे काम करता है:

console.log(document.body.clientHeight,document.body.scrollHeight,document.body.offsetHeight) 

ध्यान दें करें नीचे दिए गए लिंक का उपयोग करने स्पष्ट करने के लिए: Understanding offsetWidth, clientWidth, scrollWidth and -Height, respectively

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