Comment puis - je obtenir windowWidth
, windowHeight
, pageWidth
, pageHeight
, screenWidth
, screenHeight
, pageX
, pageY
, screenX
, screenY
qui fonctionnera dans tous les principaux navigateurs?
javascript
jquery
layout
cross-browser
tourterelle
la source
la source
Réponses:
Vous pouvez obtenir la taille de la fenêtre ou du document avec jQuery:
Pour la taille de l'écran, vous pouvez utiliser l'
screen
objet:la source
46
) plutôt qu'une chaîne comme css ('height') ("46px"
).Cela a tout ce que vous devez savoir: obtenir la taille de la fenêtre / fenêtre
mais en bref:
Violon
Veuillez arrêter de modifier cette réponse. Il a été modifié 22 fois maintenant par différentes personnes pour correspondre à leur préférence de format de code. Il a également été souligné que cela n'est pas nécessaire si vous souhaitez uniquement cibler les navigateurs modernes - si tel est le cas, vous n'avez besoin que des éléments suivants:
la source
g = document.body
?document.body
.Voici une solution multi-navigateur avec du JavaScript pur ( Source ):
la source
body element
renverra une valeurundefined
car le dom n'est pas encore chargé.Un moyen non jQuery pour obtenir la dimension d'écran disponible.
window.screen.width/height
a déjà été mis en place, mais pour le webdesign réactif et l'intégralité, je pense que cela vaut la peine de mentionner ces attributs:http://www.quirksmode.org/dom/w3c_cssom.html#t10 :
la source
window.screen.availHeight
semble assumer le mode plein écran de sorte que le mode d'écran normal force le défilement (testé dans Firefox et Chrome).window.screen.height
place.Mais lorsque nous parlons d'écrans réactifs et si nous voulons le gérer à l'aide de jQuery pour une raison quelconque,
donne la mesure correcte. Même cela supprime l'espace supplémentaire de la barre de défilement et nous n'avons pas à nous soucier d'ajuster cet espace :)
la source
window.innerWidth
etwindow.innerHeight
ne prennent pas en compte la taille de la barre de défilement. Si des barres de défilement sont présentes, ces méthodes renvoient des résultats incorrects pour la taille de la fenêtre dans presque tous les navigateurs de bureau. Voir stackoverflow.com/a/31655549/508355Vous pouvez également obtenir la largeur et la hauteur de WINDOW, en évitant les barres d'outils du navigateur et d'autres choses. C'est la véritable zone utilisable dans la fenêtre du navigateur .
Pour ce faire, utilisez:
window.innerWidth
et leswindow.innerHeight
propriétés ( voir doc sur w3schools ).Dans la plupart des cas, ce sera la meilleure façon, par exemple, d'afficher une boîte de dialogue modale flottante parfaitement centrée. Il vous permet de calculer les positions sur la fenêtre, quelle que soit l'orientation de la résolution ou la taille de la fenêtre à l'aide du navigateur.
la source
la source
Pour vérifier la hauteur et la largeur de la page actuellement chargée de n'importe quel site Web à l'aide de "console" ou après avoir cliqué sur "Inspecter" .
étape 1 : cliquez sur le bouton droit de la souris et cliquez sur 'Inspecter' puis sur 'console'
étape 2 : assurez-vous que l'écran de votre navigateur ne doit pas être en mode «maximiser». Si l'écran du navigateur est en mode «Agrandir», vous devez d'abord cliquer sur le bouton Agrandir (présent dans le coin supérieur droit ou gauche) et le dé-maximiser.
étape 3 : Maintenant, écrivez ce qui suit après le signe supérieur à ('>') ie
la source
Si vous avez besoin d'une solution vraiment pare-balles pour la largeur et la hauteur du document (le
pageWidth
etpageHeight
dans l'image), vous voudrez peut-être envisager d'utiliser un de mes plugins , jQuery.documentSize .Il n'a qu'un seul objectif: toujours renvoyer la taille de document correcte, même dans les scénarios où jQuery et d'autres méthodes échouent . Malgré son nom, vous n'avez pas nécessairement à utiliser jQuery - il est écrit en Javascript vanilla et fonctionne également sans jQuery .
Usage:
pour le monde
document
. Pour les autres documents, par exemple dans un iframe intégré auquel vous avez accès, passez le document en paramètre:Mise à jour: maintenant aussi pour les dimensions des fenêtres
Depuis la version 1.1.0, jQuery.documentSize gère également les dimensions des fenêtres.
Cela est nécessaire car
$( window ).height()
est buggé dans iOS , au point d'être inutile$( window ).width()
et ne$( window ).height()
sont pas fiables sur mobile, car ils ne gèrent pas les effets du zoom mobile.jQuery.documentSize fournit
$.windowWidth()
et$.windowHeight()
, qui résolvent ces problèmes. Pour en savoir plus, consultez la documentation .la source
J'ai écrit un petit bookmarklet javascript que vous pouvez utiliser pour afficher la taille. Vous pouvez facilement l'ajouter à votre navigateur et chaque fois que vous cliquez dessus, vous verrez la taille dans le coin droit de la fenêtre de votre navigateur.
Vous trouverez ici des informations sur l'utilisation d'un bookmarklet https://en.wikipedia.org/wiki/Bookmarklet
Bookmarklet
Code d'origine
Le code d'origine est en café:
Fondamentalement, le code ajoute un petit div qui se met à jour lorsque vous redimensionnez votre fenêtre.
la source
Dans certains cas, une mise en page réactive
$(document).height()
peut renvoyer des données erronées qui affichent uniquement la hauteur du port d'affichage. Par exemple, lorsqu'un wrapper div # a une hauteur: 100%, ce # wrapper peut être étiré par un bloc à l'intérieur. Mais sa hauteur sera toujours la hauteur de la fenêtre. Dans une telle situation, vous pourriez utiliserCela représente la taille réelle du wrapper.
la source
Guide complet relatif aux tailles d'écran
Javascript
Pour la hauteur:
Remarque: Lorsque la fenêtre est agrandie, cela équivaut à screen.availHeight
Pour largeur:
Jquery
Pour la hauteur:
Pour largeur:
Référence: https://help.optimizely.com/Build_Campaigns_and_Experiments/Use_screen_measurements_to_design_for_responsive_breakpoints
la source
J'ai développé une bibliothèque pour connaître la taille réelle de la fenêtre d'affichage pour les navigateurs de bureau et mobiles, car les tailles de fenêtre d'affichage sont incohérentes sur tous les appareils et ne peuvent pas s'appuyer sur toutes les réponses de ce message (selon toutes les recherches que j'ai faites à ce sujet): https: // github .com / pyrsmk / W
la source
Parfois, vous devez voir les changements de largeur / hauteur lors du redimensionnement de la fenêtre et du contenu interne.
Pour cela, j'ai écrit un petit script qui ajoute une boîte à journaux qui surveille dynamiquement toutes les mises à jour et presque immédiatement les mises à jour.
Il ajoute un code HTML valide avec une position fixe et un index z élevé, mais est suffisamment petit, vous pouvez donc :
Testé sur: Chrome 40, IE11, mais il est également possible de travailler sur d'autres navigateurs / anciens ... :)
EDIT: Maintenant, les styles sont appliqués uniquement à l'élément de table de l'enregistreur - pas à toutes les tables - c'est aussi une solution sans jQuery :)
la source
Avec l'introduction de
globalThis
dans ES2020, vous pouvez utiliser des propriétés telles que.Pour la taille de l'écran:
Pour la taille de la fenêtre
Pour le décalage:
...& bientôt.
la source
Vous pouvez utiliser l' écran objet pour l'obtenir.
Ce qui suit est un exemple de ce qu'il retournerait:
Pour obtenir votre
screenWidth
variable, utilisez simplement lascreen.width
même chose quescreenHeight
vous utiliseriezscreen.height
.Pour obtenir la largeur et la hauteur de votre fenêtre, ce serait
screen.availWidth
ouscreen.availHeight
respectivement.Pour les variables
pageX
etpageY
, utilisezwindow.screenX or Y
. Notez que cela provient du TRÈS GAUCHE / HAUT DE VOTRE ÉCRAN GAUCHE / HAUT . Donc, si vous avez deux écrans de largeur,1920
une fenêtre à 500 pixels à gauche de l'écran de droite aurait une valeur X de2420
(1920 + 500).screen.width/height
, cependant, affichez la largeur ou la hauteur de l'écran ACTUEL.Pour obtenir la largeur et la hauteur de votre page, utilisez jQuery
$(window).height()
ou$(window).width()
.En utilisant à nouveau jQuery, utilisez
$("html").offset().top
et$("html").offset().left
pour vos valeurspageX
etpageY
.la source
voici ma solution!
la source
Voici comment j'ai réussi à obtenir la largeur de l'écran dans React JS Project:
Si la largeur est égale à 1680, retournez 570 sinon retournez 200
Screen.availWidth
la source