¿Hay alguna manera que funcione para todos los navegadores?
196
¿Hay alguna manera que funcione para todos los navegadores?
respuesta original
Si.
window.screen.availHeight
window.screen.availWidth
actualizar 2017-11-10
De Tsunamis en los comentarios:
Para obtener la resolución nativa de, es decir, un dispositivo móvil, debe multiplicar con la relación de píxeles del dispositivo:
window.screen.width * window.devicePixelRatio
ywindow.screen.height * window.devicePixelRatio
. Esto también funcionará en equipos de escritorio, que tendrán una proporción de 1.
Y de Ben en otra respuesta:
En JavaScript vainilla, esto le dará el ancho / alto DISPONIBLE:
window.screen.availHeight window.screen.availWidth
Para el ancho / alto absoluto, use:
window.screen.height window.screen.width
$(window).width()
en su lugar, vea la respuesta dewindow.devicePixelRatio
. Consulte mi comentario sobre la respuesta de Alessandros.fuente
window.screen
. Debería agregarlo a la respuesta existente.screen.availHeight
solo da la altura disponible en la ventana del navegador mientrasscreen.height
da la altura exacta de la pantalla.window.screen.width * window.devicePixelRatio
ywindow.screen.height * window.devicePixelRatio
. Esto también funcionará en equipos de escritorio, que tendrán una proporción de 1.En JavaScript vainilla, esto le dará el ancho / alto DISPONIBLE :
Para el ancho / alto absoluto, use:
Ambos de los anteriores se pueden escribir sin el prefijo de la ventana.
¿Te gusta jQuery? Esto funciona en todos los navegadores, pero cada navegador proporciona valores diferentes.
fuente
¿Te refieres a la resolución de pantalla (por ejemplo, 72 puntos por pulgada) o dimensiones de píxeles (la ventana del navegador es actualmente de 1000 x 800 píxeles)?
La resolución de pantalla le permite saber qué tan gruesa será una línea de 10 píxeles en pulgadas. Las dimensiones en píxeles le indican qué porcentaje de la altura de pantalla disponible ocupará una línea horizontal de 10 píxeles de ancho.
No hay forma de conocer la resolución de pantalla solo desde Javascript, ya que la computadora en sí misma generalmente no conoce las dimensiones reales de la pantalla, solo la cantidad de píxeles. 72 ppp es la suposición habitual ...
Tenga en cuenta que hay mucha confusión sobre la resolución de pantalla, a menudo las personas usan el término en lugar de la resolución de píxeles, pero los dos son bastante diferentes. Ver Wikipedia
Por supuesto, también puede medir la resolución en puntos por cm. También está el oscuro tema de los puntos no cuadrados. Pero yo divago.
fuente
Usando jQuery puedes hacer:
fuente
También puede obtener el ancho y la altura de la VENTANA, evitando las barras de herramientas del navegador y ... (no solo el tamaño de la pantalla).
Para hacer esto, use:
window.innerWidth
ywindow.innerHeight
propiedades. Véalo en w3schools .En la mayoría de los casos, será la mejor manera, por ejemplo, de mostrar un diálogo modal flotante perfectamente centrado. Le permite calcular posiciones en la ventana, sin importar qué orientación de resolución o tamaño de ventana esté usando el navegador.
fuente
Intentar conseguir esto en un dispositivo móvil requiere algunos pasos más.
screen.availWidth
permanece igual independientemente de la orientación del dispositivo.Aquí está mi solución para dispositivos móviles:
fuente
window.orientation
devuelve indefinido ... (Firefox 49)screen.orientation.angle
devuelve un ángulo, pero ya está en 0 para el modo horizontal.Consulte Obtener resolución de pantalla del monitor con Javascript y el
window.screen
objetofuente
fuente
solo para referencia futura:
fuente
Si desea detectar la resolución de la pantalla, es posible que desee verificar la resolución del complemento . Le permite hacer lo siguiente:
Aquí hay algunas conclusiones excelentes de Ryan Van Etten, el autor del complemento:
Aquí está el código fuente de res, a partir de hoy:
fuente