¿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.devicePixelRatioywindow.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.availWidthPara 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.availHeightsolo da la altura disponible en la ventana del navegador mientrasscreen.heightda la altura exacta de la pantalla.window.screen.width * window.devicePixelRatioywindow.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.innerWidthywindow.innerHeightpropiedades. 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.availWidthpermanece igual independientemente de la orientación del dispositivo.Aquí está mi solución para dispositivos móviles:
fuente
window.orientationdevuelve indefinido ... (Firefox 49)screen.orientation.angledevuelve un ángulo, pero ya está en 0 para el modo horizontal.Consulte Obtener resolución de pantalla del monitor con Javascript y el
window.screenobjetofuente
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