web-dev-qa-db-fra.com

Obtenir la largeur de la fenêtre du navigateur, y compris la barre de défilement

J'ai essayé d'obtenir la largeur de la fenêtre du navigateur avec $(window).width();. Sur IE 10, il retourne toute la largeur du navigateur, inclut la barre de défilement. Cependant, sur Firefox et Chrome, les deux renvoient la valeur sans la barre de défilement.

Comment puis-je obtenir la largeur du navigateur avec la barre de défilement? Parce que j'ai besoin que la largeur détectée soit exactement la même que CSS.

Merci.

26
user1995781

Cela obtiendra la largeur complète de la fenêtre:

 window.outerWidth

NOTE:outerWidth() de jQuery ne fonctionne pas sur $(window)

24
infidel

La première réponse était proche, mais après un examen plus approfondi, elle est un peu plus compliquée. Le body.clientWidth est la largeur sans les barres de défilement. Le window.outerWidth est la largeur incluant les barres de défilement et d'autres éléments de fenêtre comme la bordure de fenêtre. Le window.innerWidth est la largeur réelle de la fenêtre, y compris les barres de défilement, mais pas la bordure de la fenêtre.

enter image description here

51
Jamie Thomas

window.innerWidth semble être la bonne réponse en cas de besoin pour une conception réactive

14
minlare

window.innerWidth donnera la largeur du HTML et la barre de défilement. Cette valeur est la valeur utilisée pour les points d'arrêt de largeur de périphérique lors de l'utilisation de requêtes multimédias en CSS. Essentiellement, window.innerWidth est égal à l'unité CSS calculée 100vw. Cependant, window.outerWidth vous donnera la largeur de la fenêtre entière.

Par exemple, si les outils de développement de Chrome étaient ouverts à l'intérieur du navigateur, window.outerWidth serait la largeur de la page Web + la barre de défilement + l'inspecteur des outils de développement de Chrome. Tandis que window.innerWidth renverrait la largeur de la page Web + barre de défilement.

0
Caleb Runion