是否有一种方法适用于所有浏览器?
当前回答
你是指显示分辨率(例如72点每英寸)还是像素尺寸(浏览器窗口目前是1000 x 800像素)?
屏幕分辨率可以让你知道10像素的线有多粗,单位是英寸。像素尺寸告诉你可用屏幕高度的百分比将被10像素宽的水平线所占据。
仅通过Javascript无法知道显示分辨率,因为计算机本身通常不知道屏幕的实际尺寸,只知道像素的数量。72 dpi是通常的猜测....
请注意,关于显示分辨率有很多困惑,人们经常使用这个术语而不是像素分辨率,但这两者是非常不同的。看到维基百科
当然,你也可以用点/厘米来测量分辨率。还有一个令人费解的非方形圆点问题。但我离题了。
其他回答
原来的答案
Yes.
window.screen.availHeight
window.screen.availWidth
更新2017-11-10
来自海啸的评论:
为了获得移动设备的原生分辨率,你必须与设备像素比相乘:window.screen.width * window.devicePixelRatio和window.screen.height * window.devicePixelRatio。这也适用于桌面,桌面的比率为1。
本的另一个回答是:
在JavaScript中,这将为你提供可用的宽度/高度: window.screen.availHeight window.screen.availWidth 对于绝对宽度/高度,使用: window.screen.height window.screen.width
您还可以获得窗口宽度和高度,避免浏览器工具栏和…(不仅仅是屏幕大小)。
要做到这一点,请使用: 窗口。innerWidth和window。innerHeight属性。详见w3schools。
在大多数情况下,这将是最好的方式,例如,显示一个完美的中心浮动模式对话框。它允许您计算窗口上的位置,无论使用浏览器的分辨率方向或窗口大小。
请参见使用Javascript获取监视器屏幕分辨率和窗口。屏幕上的对象
var width = screen.width;
var height = screen.height;
想要在移动设备上实现这个功能需要更多的步骤。屏幕上。不管设备的方向如何,availWidth保持不变。
以下是我的手机解决方案:
function getOrientation(){
return Math.abs(window.orientation) - 90 == 0 ? "landscape" : "portrait";
};
function getMobileWidth(){
return getOrientation() == "landscape" ? screen.availHeight : screen.availWidth;
};
function getMobileHeight(){
return getOrientation() == "landscape" ? screen.availWidth : screen.availHeight;
};
推荐文章
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字
- 如何使用JavaScript分割逗号分隔字符串?
- 在Javascript中~~(“双波浪号”)做什么?
- 谷歌chrome扩展::console.log()从后台页面?
- 未捕获的SyntaxError:
- [].slice的解释。调用javascript?
- jQuery日期/时间选择器
- 我如何预填充一个jQuery Datepicker文本框与今天的日期?
- 数组的indexOf函数和findIndex函数的区别
- jQuery添加必要的输入字段
- Access-Control-Allow-Origin不允许Origin < Origin >