jquery $ (pencere) .height () belge yüksekliğini döndürüyor


104

Eminim yaptığım basit bir hata vardır, ancak sadece uyarıyorum $(window).height()ve ile aynı değeri döndürüyor $(document).height().

13 "MBA kullanıyorum ve 780px - 820px (kabaca) arasında maksimize edildiğinde tarayıcılarımın pencere yüksekliğindeyim, ancak her seferinde belge yüksekliğiyle aynı bir pencere yüksekliği döndürüyor. Sitede çalıştığım her durumda, üzerinde çalışıyorum 1000 pikselden fazla.

Burada neler oluyor?

alert($(window).height());
alert($(document).height()); 

hangi tarayıcı üzerinde çalışıyorsun?
Kanishka Panamaldeniya

Bu sorun jquery-1.8.0 ile ortaya çıkmaya başladı,
jquery'nin

Yanıtlar:


245

Etiketsiz doctypeChrome, her iki çağrı için de aynı değeri bildirir.

Gibi katı bir belge türü eklemek <!DOCTYPE html> , değerlerin reklamı yapılan şekilde çalışmasına neden olur.

doctypeEtiketi olmalıdır çok belgenizde ilk şey. Örneğin, herhangi bir şey oluşturmasa bile önünde herhangi bir metin olamaz.


11
FireFox, <! DOCTYPE HTML>
Tom Chiverton

ayrıca, yanlış doctype, twitter bootstrap scrollspy'nin, $ (window) .height () 'in belge yüksekliğini döndürmesiyle aynı nedenden dolayı garip davranmasına neden olur.
nidheeshdas

3
Benim durumumda, herhangi bir HTML'den önce bir çıktı Response.Writeveren bir ASP sitesinde kodumda bir vardı 1. Yani benim belge tipim doğruydu, ancak teknik olarak sayfadaki ilk şey değildi.
James

1
aynı problemim var ama doctype doğru bir şekilde beyan edildi :(
bia.migueis

1
" Doctype etiketi, belgenizdeki ilk şey olmalıdır. Örneğin, herhangi bir şey oluşturmasa bile ondan önce herhangi bir php koduna sahip olamazsınız. " Bu nasıl olabilir? Tarayıcı, sunucunun ne çalıştırdığını bilmez, yalnızca HTML biçimlendirmeli bir metin dosyası alır. Ya Apache değil IIS çalıştırıyorsanız? Tarayıcı, sunucunun ne yaptığını umursamıyor.
Sablefoste

24

Ben de aynı sorunu yaşadım ve bunu kullanmak sorunu çözdü.

var w = window.innerWidth;
var h = window.innerHeight;

1
çok garip, ben de uygun doctype kullanıyorum. iç yüksekliğin sorunumu çözdü! Teşekkürler
Martijn van Hoof

1
Aynı sorun - geçerli bir belge türü ve hepsi vardı. Biraz daha fazla çapraz platform: var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
melanie johnson

sorunu gerçekten
çözüyorum

1

Belgenizin, içeriğini görüntülemek için pencerede yeterli alana sahip olması gerektiğini düşünüyorum. Bu, belgenin daha fazla bölümünü görmek için aşağı kaydırmaya gerek olmadığı anlamına gelir. Bu durumda, belge yüksekliği pencere yüksekliğine eşit olacaktır.


Belge, her sayfada pencerenin alt kısmına uzanır.
Fraser

0

İşte bunun için bir soru ve cevap: screen.availHeight ve window.height () arasındaki fark

Resimler de var, böylece farklılıkları gerçekten görebilirsiniz. Bu yardımcı olur umarım.

Temel olarak, $(window).height()size tarayıcı penceresinin (görüntü alanı) içindeki maksimum yüksekliği $(document).height()verir ve size tarayıcının içindeki belgenin yüksekliğini verir. Çoğu zaman, kaydırma çubuklarıyla bile tamamen aynı olacaktır.


0

Doctype'ı web sayfamızda jquery (pencere) kullanırsak gerçekten işe yarıyor, görüntü alanı yüksekliğini döndürür, aksi takdirde tam belge yüksekliğini döndürür.

Aşağıdaki etiketi web sayfanızın üstünde tanımlayın: <!DOCTYPE html>


bu etiketi web sayfanızın üstünde kullanın: <! DOCTYPE html>
Gourav Yadav
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.