2015-05-31 33 views
5

dönmek: döndüjQuery pencere genişliği bazen BAZEN yanlış değerini

$(window).width(); 

değeri yanlış (IE dışındaki tüm tarayıcılarda, IE üzerinde her zaman doğrudur). Ben pencereyi yeniden boyutlandırma am döndürülen ne değeri görmesi için

$('div.container p').text($(window).width()); 

p elemanın metni değiştirmek için: Ben satırını kullanın. Geri dönen değerin yanlış olduğu bir örnek:

Sağ üst köşede, gerçek boyutların Chrome'da ne olduğunu görebilirsiniz.

Değer yanlış olduğunda, her zaman 17px kapalı olduğunu fark ettim.

Geri döndürülen değer her zaman yanlış DEĞİL, bu nedenle pencere gerektiği gibi görünüyor çoğu kez.

Yardım!

cevap

14

.

, olmayan jQuery sürümünü kullanabilir tutarlı bir çapraz tarayıcı sonuç almak için:

window.innerWidth

tarayıcınızın konsoluna bu yazmayı deneyin ve bunu tutarlı bir döndüren göreceksiniz Kullandığınız tarayıcıdan bağımsız olarak sonuç.

Not: jQuery olmayan sürüm window.outerWidth, aynı sonucu IE ve Chrome'da döndürür, ancak Firefox'ta biraz daha küçük bir değer döndürür.

+0

Inacio Schweller ve size Trevor sayesinde. Düz javaScript window.innerWidth kullanımı, ihtiyacım olan değeri döndürür. – user435421

2

Tarayıcının görünüm çubuğunun kaydırma çubuğu nedeniyle. Kaydırma çubuğunu göstermek için pencereyi en aza indirirseniz, görünüm alanı, değerinizden 17 piksel daha küçük olduğunu söyleyecektir. Pencere doluysa, 17px farkı görünmez. @Inacio Schweller'ın doğru olduğu

+0

Durumun böyle olabileceğini düşündüm. Bunu nasıl yapmalıyım ve internet sitemde herhangi bir içerik bulunmadığında tarayıcıları (IE hariç) kaydırma çubuklarını bile dikkate almalıyım? – user435421