Comment obtenir de manière fiable la largeur de l'écran AVEC la barre de défilement
Est-il un moyen fiable pour dire un navigateur de la fenêtre d'affichage de la largeur qui comprend la barre de défilement, mais pas le reste de la fenêtre du navigateur)?
Aucune des caractéristiques énumérées ici me dire la largeur de l'écran, y COMPRIS la barre de défilement (si présent)
source d'informationauteur Goro
Vous devez vous connecter pour publier un commentaire.
Tant que corps est de 100%,
document.body.scrollWidth
fonctionne.Démo: http://jsfiddle.net/ThinkingStiff/5j3bY/
HTML:
CSS:
Script:
J'ai mis un haut div dans la démonstration de force d'une barre de défilement.
J'ai compris comment faire pour obtenir avec précision la fenêtre d'affichage de la largeur de la barre de défilement à l'aide du code à partir de: http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript
Mettre cela à l'intérieur de votre
$(document).ready(function()
Ce qu'il Fait:
Lorsque votre page est "prêt" ou est redimensionné, la fonction calcule la bonne fenêtre de la hauteur et de la largeur (y compris la barre de défilement).
Je suppose que vous voulez savoir de la fenêtre d'affichage de la largeur avec la barre de défilement en compte, parce que l'écran lui-même n'ont pas de barre de défilement. En fait, la largeur de l'Écran et la hauteur sera la résolution de l'écran lui-même, donc je ne suis pas sûr de ce que tu veux dire avec la largeur de l'écran avec la barre de défilement.
De la fenêtre d'affichage toutefois, la zone où seule la page (et les barres de défilement) est présenté à l'utilisateur, de sens, pas de menus du navigateur, pas de signets ou que ce soit, seule la page affichée, est l'endroit où une telle barre de défilement peuvent être présents.
En supposant que vous voulez, vous pouvez mesurer la taille de la fenêtre du navigateur client tout en tenant compte de la taille des barres de défilement de cette façon.
D'abord, n'oubliez pas de vous balise body à 100% de la largeur et de la hauteur juste pour s'assurer que la mesure est précise.
Par la suite, vous pouvez mesurer la largeur à volonté.
Échantillon
Espère que cela aide.
Actuellement la nouvelle vw et vh propriétés css3 pleinement la taille, y compris la barre de défilement.
body {
width:100vw;
height:100vh;
}
Il y a une discussion en ligne si c'est un bug ou pas.
il n'y a rien après barre de défilement alors "reste" de la fenêtre", c'est quoi?
Mais oui, une façon de le faire est de faire une autre div wrapper dans le corps où tout va et le corps a
overflow:none; height:100%; width:100%;
sur elle, div wrapper aussi a 100% de la largeur et de la hauteur. et le débordement de défilement. ALORS MAINTENANT...la largeur de wrapper serait la largeur de la fenêtre d'affichageVoir L'Exemple: http://jsfiddle.net/techsin/8fvne9fz/
Avec jQuery, vous pouvez calculer le navigateur de la barre de défilement de la largeur de la différence de largeur lorsque
overflow: hidden
est définie etoverflow: scroll
est réglé.La différence de largeur a la taille de la barre de défilement.
Ici est un exemple simple qui montre comment vous pouvez faire cela.
Vous pouvez obtenir la largeur de la fenêtre avec la barre de défilement , de cette façon:
Découvrez vw: http://dev.w3.org/csswg/css-values/#viewport-relative-lengths
http://caniuse.com/#search=vw
C'est ma solution pour le retrait de la barre de défilement de l'ombre", car
scrollWidth
ne fonctionne pas pour moi:C'est facile, mais il fonctionne. Assurez-vous d'ajouter un commentaire expliquant pourquoi vous attribuer la même valeur à deux reprises 🙂