Existe-t-il un moyen qui fonctionne pour tous les navigateurs?
196
Existe-t-il un moyen qui fonctionne pour tous les navigateurs?
réponse originale
Oui.
window.screen.availHeight
window.screen.availWidth
mise à jour 2017-11-10
De Tsunamis dans les commentaires:
Pour obtenir la résolution native d'un appareil mobile, vous devez multiplier par le ratio de pixels de l'appareil:
window.screen.width * window.devicePixelRatio
etwindow.screen.height * window.devicePixelRatio
. Cela fonctionnera également sur les ordinateurs de bureau, qui auront un ratio de 1.
Et de Ben dans une autre réponse:
En JavaScript vanille, cela vous donnera la largeur / hauteur DISPONIBLE:
window.screen.availHeight window.screen.availWidth
Pour la largeur / hauteur absolue, utilisez:
window.screen.height window.screen.width
$(window).width()
plutôt jQuery , voir la réponse dewindow.devicePixelRatio
. Reportez-vous à mon commentaire sur la réponse d'Alessandros.la source
window.screen
. Devrait simplement l'ajouter à la réponse existante.screen.availHeight
donne juste la hauteur disponible dans la fenêtre du navigateur tandis quescreen.height
donne la hauteur exacte de l'écran.window.screen.width * window.devicePixelRatio
etwindow.screen.height * window.devicePixelRatio
. Cela fonctionnera également sur les ordinateurs de bureau, qui auront un ratio de 1.En JavaScript vanille, cela vous donnera la largeur / hauteur DISPONIBLE :
Pour la largeur / hauteur absolue, utilisez:
Les deux éléments ci-dessus peuvent être écrits sans le préfixe de fenêtre.
Comme jQuery? Cela fonctionne dans tous les navigateurs, mais chaque navigateur donne des valeurs différentes.
la source
Parlez-vous de la résolution d'affichage (par exemple, 72 points par pouce) ou des dimensions en pixels (la fenêtre du navigateur est actuellement de 1000 x 800 pixels)?
La résolution d'écran vous permet de connaître l'épaisseur d'une ligne de 10 pixels en pouces. Les dimensions en pixels vous indiquent quel pourcentage de la hauteur d'écran disponible sera occupée par une ligne horizontale de 10 pixels de large.
Il n'y a aucun moyen de connaître la résolution d'affichage uniquement à partir de Javascript, car l'ordinateur lui-même ne connaît généralement pas les dimensions réelles de l'écran, juste le nombre de pixels. 72 dpi est la supposition habituelle ....
Notez qu'il y a beaucoup de confusion sur la résolution d'affichage, souvent les gens utilisent le terme au lieu de la résolution en pixels, mais les deux sont assez différents. Voir Wikipédia
Bien sûr, vous pouvez également mesurer la résolution en points par cm. Il y a aussi le sujet obscur des points non carrés. Mais je m'égare.
la source
En utilisant jQuery, vous pouvez faire:
la source
Vous pouvez également obtenir la largeur et la hauteur de WINDOW, en évitant les barres d'outils du navigateur et ... (pas seulement la taille de l'écran).
Pour ce faire, utilisez:
window.innerWidth
et leswindow.innerHeight
propriétés. Voir à 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
Essayer d'obtenir ceci sur un appareil mobile nécessite quelques étapes supplémentaires.
screen.availWidth
reste le même quelle que soit l'orientation de l'appareil.Voici ma solution pour mobile:
la source
window.orientation
renvoie undefined ... (Firefox 49)screen.orientation.angle
renvoie un angle, mais il est déjà à 0 pour le mode paysage.Voir Obtenir la résolution d'écran du moniteur avec Javascript et l'
window.screen
objetla source
la source
juste pour référence future:
la source
Si vous souhaitez détecter la résolution de l'écran, vous souhaiterez peut-être extraire la résolution du plug-in . Il vous permet d'effectuer les opérations suivantes:
Voici quelques grandes résolutions à retenir de Ryan Van Etten, l'auteur du plugin:
Voici le code source de res, à partir d'aujourd'hui:
la source