Comment obtenir la largeur de l'écran sans (moins) de la barre de défilement?
J'ai un élément et que vous avez besoin de la largeur sans(!) barre de défilement verticale.
Firebug m'indique largeur du corps est 1280px.
L'un de ces beaux travaux dans Firefox:
console.log($('.element').outerWidth() );
console.log($('.element').outerWidth(true) );
$detour = $('.child-of-element').offsetParent();
console.log( $detour.innerWidth() );
Ils retournent tous 1263px, qui est la valeur, je suis à la recherche d'.
Cependant tous les autres navigateur me donner 1280px.
Est-il de la croix-navigateur de façon à obtenir un plein écran largeur sans(!) barre de défilement verticale?
- Avez-vous besoin de l'vertical des barres de défilement? Ou pouvez-vous utiliser overflow: hidden, puis calculer la largeur?
- vous pouvez vous référer à ce site pour votre question stackoverflow.com/questions/8794338/...
- vous pouvez essayer de
width: 100%;
- êtes-vous essayer de rendre l'élément de l'ensemble de la largeur de l'écran, pas y compris les barres de défilement?
Vous devez vous connecter pour publier un commentaire.
.prop("clientWidth")
et.prop("scrollWidth")
dans JavaScript:
P. S: Notez que pour utiliser
scrollWidth
de façon fiable votre élément ne doit pas de débordement à l'horizontalejsBin démo
Vous pouvez également utiliser
.innerWidth()
mais ce ne fonctionne que sur lebody
élémentbody
débordements ou pas. s'il déborde de les restreindre.Vous pouvez utiliser de la vanille javascript en écrivant simplement:
Vous pouvez également l'utiliser pour obtenir la largeur du document comme suit:
Source: MDN
Vous pouvez également obtenir la largeur de la fenêtre complète, y compris la barre de défilement, comme suit:
Cependant, ce n'est pas supportée par tous les navigateurs, donc, comme un secours, vous souhaiterez peut-être utiliser
docWidth
comme ci-dessus, et ajouter sur le largeur de la barre de défilement.Source: MDN
document.documentElement.clientWidth
m'a aidé le plus, parce qu'il donne de la hauteur et (innerHeight
peut être moindre si le corps de ne pas remplir la page, etc). et obtient la valeur sans la barre de défilement.Voici quelques exemples qui supposent
$element
est unjQuery
élément:Essayez ceci :
Vous pouvez obtenir la largeur de l'écran par avec et sans barre de défilement à l'aide de ce code.
Ici, j'ai changé la valeur de débordement de
body
et obtenir la largeur avec et sans barre de défilement.L'endroit le plus sûr pour obtenir la bonne largeur et la hauteur sans les barres de défilement est à partir de l'élément HTML. Essayez ceci:
Prise en charge du navigateur est assez décent, avec IE 9 et appui. Pour les ANCIENS c'est à dire, utiliser l'une des nombreuses réserves mentionnées ici.
J'ai connu un problème similaire et faire
width:100%;
résolu pour moi. Je suis venu à cette solution après avoir essayé une réponse à cette question et se rendre compte que la nature même d'un<iframe>
fera de ces javascript outils de mesure inexacte sans recours à la fonction complexe. Fait de 100% est une façon simple de prendre soin d'elle dans un iframe. Je ne sais pas à propos de votre question car je ne suis pas sûr de ce que les éléments HTML de la manipulation.Aucune de ces solutions n'a fonctionné pour moi, cependant, j'ai été en mesure de le réparer en prenant la largeur et la soustraction de la la largeur de la barre de défilement. Je ne suis pas sûr de la façon de la croix-navigateur compatible c'est.
Voici ce que j'utilise