2012-05-13 20 views
16

मैं

$(window).on('resize',function() { 
    console.log("new height is: "+$(window).height()); 
}); 

का उपयोग कर, मौजूदा ब्राउज़र व्यूपोर्ट ऊंचाई पाने के लिए कोशिश कर रहा हूँ लेकिन मैं मान कि जिस तरह से बहुत कम हैं हो रही है। जब व्यूपोर्ट लगभग 850 पीएक्स लंबा होता है, तो मुझे ऊंचाई से 350 या 400 पीएक्स के मूल्य मिल रहे हैं()। क्या हो रहा है?

उदाहरण: http://jsfiddle.net/forgetcolor/SVqx9/

+3

स्पष्ट करने के लिए - आप इन हो रही है त्रुटियों _in jsFiddle_, या एक सामान्य ब्राउज़र संदर्भ में? jsFiddle एक आईफ्रेम का उपयोग करता है, इसलिए खिड़की आपकी पूरी खिड़की नहीं होगी, केवल छोटा फ्रेम। एक सामान्य ब्राउज़र में – nrabinowitz

+0

, आईफ्रेम नहीं। – mix

+0

आपको एक गैर-जेएसएफल्ड उदाहरण की आवश्यकता होगी, फिर - जेएसफ़िल्ड हमेशा आपको खराब संख्या देने जा रहा है। – nrabinowitz

उत्तर

9

एक संभावित कारण यह हो सकता है कि आप फ़ायरबग/कुछ और के साथ सांत्वना जाँच कर रहे हैं। ताकि आपको फायरबग ऊंचाई के कारण खिड़की की ऊंचाई सही न हो।

आप कुछ इस तरह की कोशिश कर सकते हैं: आप में

अंतराल ले/div दस्तावेज़:

<span id="res"></span> 

और फिर

$(window).on('resize',function() { 
    $('#res').html("new height is: "+$(window).height()); 
}); 

या Firebug पर डाल आप की जाँच करना चाहते हैं कंसोल फिर ब्राउज़र से अलग करें और फिर परिणाम की जांच करें।

+0

और यह एक बहुत ही अच्छी टिप है। क्रोम में डेवलपर विंडो खोलने में मुझे यह समस्या आई है। –

2

कोई रेपो नहीं। ध्यान रखें कि ब्राउज़र की क्रोम, जैसे एड्रेस बार, डेवलपर टूल्स, बुकमार्क्स टूलबार और अन्य में आइटम की खिड़की की ऊंचाई कम हो जाती है। निम्नलिखित व्यूपोर्ट ऊंचाई का सटीक प्रतिनिधित्व दिखाने के लिए प्रतीत होता है:

जेएसबीएन आपको विंडो की ऊंचाई का एक बहुत अच्छा अनुमान देगा, क्योंकि यह आपके कोड आउटपुट को अन्य जेएस-परीक्षण साइटों जैसे छोटे आईफ्रेम पर सीमित नहीं करता है jsfiddle के रूप में।

http://jsbin.com/otaqej/edit#javascript,html

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.js"></script> 
    </head> 
    <body> 
    <div id="message">Height: 0</div> 
    <script> 
     $(window).on("resize", function(){ 
     $("#message").html("Height: " + $(window).height()); 
     }); 
    </script> 
    </body> 
</html> 
+0

क्या आईएस 9 में काम नहीं कर रहे jsbin के पीछे कोई कारण है? हालांकि यह फ़ायरफ़ॉक्स में ठीक काम किया। – Hoque

+0

@ जेएसबीन के निर्माता, होक रेमी शार्प, आईई के बाद के संस्करणों में बड़े पैमाने पर इसका परीक्षण कर रहे हैं। यदि आपके पास इसके साथ कोई समस्या है जो आप विशेष रूप से विस्तार से कर सकते हैं, तो कृपया उसे ट्विटर पर बताएं: [@rem] (https://twitter.com/#!/rem)। – Sampson

1

JSFiddle एक जो गतिशील रूप से लोड हो जाता है आप कोड प्रस्तुत करना के बाद बनाकर काम करता है।

आपकी जावास्क्रिप्ट खिड़की की ऊंचाई की गणना कर रही है, जो की ऊंचाई होती है, जो मेरे लिए लगभग 400px लंबा है।

आपका कोड यह कर रहा है कि यह क्या हो रहा है।

30

मुझे फ़ायरफ़ॉक्स में एक ही समस्या थी तो मैंने अपनी अनुक्रमणिका पर <!DOCTYPE HTML> जोड़ा और यह काम किया।

स्रोत: http://viralpatel.net/blogs/jquery-window-height-incorrect/

+8

आप महोदय ने अभी अपना दिन बचाया: डी! – Kaz

+0

यह भी तब होता है जब आपने दस्तावेज़ में बाद में डिक्टिप घोषित किया है, जब हमने सीएसआरएफ मेटा टोकन को हमारे पृष्ठों और $ (विंडो) में जोड़ा तो यह पॉप अप हो गया। हाइट() ने एक गलत मान दिया जो डॉक्टरेट घोषणा से पहले डाला गया था । –

+0

ओह मैन .. मेरा दिन यहां भी बचाया! सब कुछ था .. तो जब मैं अपने स्टेजिंग एनवी में धक्का दिया, तो मैं वास्तव में अलग था, मैं वास्तव में चिंतित था। –

2

जो लोग अभी भी ऊपर समाधान के बाद समस्या है के लिए ...

अपने project.html पर ब्राउज़र को देखते अनुपात की जांच करें ..

$ का मूल्य (खिड़की) .height() दृश्य अनुपात समायोजित होने पर ग्राहक क्षेत्र के 'वास्तविक' पिक्सेल के समान नहीं है! (और इसलिए दूसरों $ (xx) .width() ... इस स्थिति में)

(ब्राउज़र याद मेरी लापरवाह 110% अनुपात दिनों पहले समायोजित ...)

+0

ओजिसोंग के जवाब [लिंक] पर भी देखें [http://stackoverflow.com/a/23320757/233545) एक और समस्या में –

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