Comment obtenir la hauteur et la largeur de la fenêtre du navigateur sans barres de défilement à l'aide de jQuery?
Voici ce que j'ai essayé jusqu'à présent:
var viewportWidth = $("body").innerWidth();
var viewportHeight = $("body").innerHeight();
Cette solution ne prend pas en compte les barres de défilement du navigateur.
Réponses:
Plus d'informations
Cependant, l'utilisation de jQuery n'est pas essentielle pour obtenir ces valeurs. Utilisation
pour obtenir des tailles sans les barres de défilement, ou
pour obtenir toute la fenêtre, y compris les barres de défilement.
la source
N'utilisez pas jQuery, utilisez simplement javascript pour obtenir un résultat correct:
Cela inclut la largeur / hauteur de la barre de défilement:
Cela exclut la largeur / hauteur de la barre de défilement:
la source
Voici un JS générique qui devrait fonctionner dans la plupart des navigateurs (FF, Cr, IE6 +):
la source
Vous utilisez les mauvais appels de méthode. Une fenêtre est la "fenêtre" qui est ouverte sur le document: quelle quantité vous pouvez voir et où.
L'utilisation
$(window).height()
ne vous donnera pas la taille de la fenêtre d'affichage, elle vous donnera la taille de la fenêtre entière, qui est généralement la taille du document entier bien que le document puisse être encore plus grand.Pour obtenir la taille de la fenêtre, utilisez
window.innerHeight
etwindow.innerWidth
.https://gist.github.com/bohman/1351439
N'utilisez pas les méthodes jQuery, par exemple
$(window).innerHeight()
, car elles donnent les mauvais nombres. Ils vous donnent la hauteur de la fenêtre, noninnerHeight
.la source
window.innerWidth
renvoie la largeur de la fenêtre + la largeur de la barre de défilement. que puis-je faire dans cette situation?La description
Ce qui suit vous donnera la taille de la fenêtre des navigateurs.
Échantillon
Plus d'information
la source
Comme Kyle l'a suggéré, vous pouvez mesurer la taille de la fenêtre d'affichage du navigateur client sans prendre en compte la taille des barres de défilement de cette façon.
Exemple (dimensions de la fenêtre SANS barres de défilement)
Alternativement, si vous souhaitez trouver les dimensions de la fenêtre client tout en tenant compte de la taille des barres de défilement, alors cet exemple ci-dessous vous convient le mieux.
N'oubliez pas de définir votre étiquette corporelle sur une largeur et une hauteur de 100% juste pour vous assurer que la mesure est précise.
Exemple (dimensions de la fenêtre avec barres de défilement)
la source
Le script
$(window).height()
fonctionne bien (montrant la hauteur de la fenêtre et non le document avec la hauteur de défilement), MAIS il faut que vous mettiez correctement la balise doctype dans votre document, par exemple ces doctypes:Pour html5:
<!doctype html>
pour html4 de transition:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Le doctype par défaut supposé par certains navigateurs est probablement tel qu'il
$(window).height()
prend la hauteur du document et non la hauteur du navigateur. Avec la spécification doctype, c'est résolu de manière satisfaisante, et je suis presque sûr que vous éviterez le "passage du scroll-overflow à hidden puis back", ce qui est, je suis désolé, un truc un peu sale, surtout si vous ne le faites pas ' t le documenter sur le code pour l'usage futur du programmeur.De plus, si vous faites un script, vous pouvez inventer des tests pour aider les programmeurs dans vos bibliothèques, laissez-moi en inventer quelques:
la source
la source
Utilisation de jQuery ...
$ (document) .height () & $ (window) .height () renverra les mêmes valeurs ... la clé est de réinitialiser le remplissage et la marge du corps afin que vous n'obteniez aucun défilement.
J'espère que cela t'aides.
la source
Je voulais un look différent de mon site Web pour la largeur de l'écran et le petit écran. J'ai créé 2 fichiers CSS. En Java, je choisis lequel des 2 fichiers CSS est utilisé en fonction de la largeur de l'écran. J'utilise la fonction PHP
echo
avec dans la fonctionecho
-fonction javascript.mon code dans la
<header>
section de mon fichier PHP:la source