有没有一种方法可以适用于所有浏览器?
有没有一种方法可以适用于所有浏览器?
Answers:
原始答案
是。
window.screen.availHeight
window.screen.availWidth
更新 2017-11-10
来自海啸的评论:
要获得移动设备的原始分辨率,您必须乘以设备像素比率:
window.screen.width * window.devicePixelRatio
和window.screen.height * window.devicePixelRatio
。比率也为1的台式机也可以使用。
从本(Ben)得到另一个答案:
在原始JavaScript中,这将为您提供可用的宽度/高度:
window.screen.availHeight window.screen.availWidth
对于绝对宽度/高度,请使用:
window.screen.height window.screen.width
$(window).width()
,请参阅chaim.dev的答案
window.devicePixelRatio
。请参阅我对亚历山德罗斯答案的评论。
var width = screen.width;
var height = screen.height;
window.screen
。应该将其添加到现有答案中。
screen.availHeight
仅提供浏览器窗口中的可用高度,同时screen.height
提供屏幕的确切高度。
window.screen.width * window.devicePixelRatio
和window.screen.height * window.devicePixelRatio
。这也将在台式机上工作,该台式机的比例为
使用jQuery,您可以执行以下操作:
$(window).width()
$(window).height()
您还可以获取WINDOW的宽度和高度,而不必使用浏览器工具栏和...(不仅仅是屏幕尺寸)。
为此,请使用:
window.innerWidth
和 window.innerHeight
属性。在w3schools上看到它。
例如,在大多数情况下,这是显示完美居中浮动模式对话框的最佳方法。无论使用哪种分辨率方向或窗口大小,都可以使用它来计算窗口上的位置。
尝试在移动设备上实现此功能需要更多步骤。screen.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;
};
window.orientation
返回undefined ...(Firefox 49)screen.orientation.angle
返回一个角度,但横向模式已经为0。
如果要检测屏幕分辨率,则可能需要签出res插件。它允许您执行以下操作:
var res = require('res')
res.dppx() // 1
res.dpi() // 96
res.dpcm() // 37.79527559055118
以下是该插件的作者Ryan Van Etten的一些高分辨率文章:
截止到今天,这是res的源代码:
!function(root, name, make) {
if (typeof module != 'undefined' && module.exports) module.exports = make()
else root[name] = make()
}(this, 'res', function() {
var one = {dpi: 96, dpcm: 96 / 2.54}
function ie() {
return Math.sqrt(screen.deviceXDPI * screen.deviceYDPI) / one.dpi
}
function dppx() {
// devicePixelRatio: Webkit (Chrome/Android/Safari), Opera (Presto 2.8+), FF 18+
return typeof window == 'undefined' ? 0 : +window.devicePixelRatio || ie() || 0
}
function dpcm() {
return dppx() * one.dpcm
}
function dpi() {
return dppx() * one.dpi
}
return {'dppx': dppx, 'dpi': dpi, 'dpcm': dpcm}
});