screen 对象

screen对象在 JS 编程中,比较冷门,不太常用。

基本上是用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素高度和宽度等。


属性

每个浏览器中的screen对象都包含着各不相同的属性,其中chrome包含9个属性,firefox包含10个,IE8-浏览器包含14个,IE9+浏览器包含17个,可参考《JS高级程序设计》,第214页。以下为这17个属性的概述:

属性              说明

height            屏幕的像素高度
width             屏幕的像素宽度
availHeight       屏幕的像素高度减去系统部件高度之后的值(只读)
availWidth        屏幕的像素宽度减去系统部件宽度之后的值(只读)
left              当前屏幕距左边的像素距离[firefox返回0,chrome和IE不支持]
top               当前屏幕距上方的像素距离[firefox返回0,chrome和IE不支持]
availLeft         未被系统部件占用的最左侧的像素值(只读)[chrome和firefox返回0,IE不支持]
availTop          未被系统部件占用的最上方的像素值(只读)[chrome和firefox返回0,IE不支持]
bufferDepth       读、写用于呈现屏外位图的位数[IE返回0,chrome和firefox不支持]
colorDepth        用于表现颜色的位数(只读)[IE8-返回32,其他浏览器返回24]
pixelDepth        屏幕的位深(只读)[IE8-不支持,其他浏览器返回24]
deviceXDPI        屏幕实际的水平DPI(只读)[IE返回96,chrome和firefox不支持]
deviceYDPI        屏幕实际的垂直DPI(只读)[IE返回96,chrome和firefox不支持]
logicalXDPI       屏幕逻辑的水平DPI(只读)[IE返回96,chrome和firefox不支持]
logicalYDPI       屏幕逻辑的垂直DPI(只读)[IE返回96,chrome和firefox不支持]
updateInterval      读、写以毫秒表示的屏幕刷新时间间隔[IE返回0,chrome和firefox不支持]
fontSmoothingEnabled     是否启用了字体平滑(只读)[IE返回true,chrome和firefox不支持]

[ 常用属性 ]

  • availHeight:屏幕的像素高度减去系统部件高度之后的值(只读),代表屏幕可用高度,单位为像素
  • availWidth:屏幕的像素宽度减去系统部件宽度之后的值(只读),代表屏幕可用宽度,单位为像素
console.log(screen.availHeight);   // 1040
console.log(screen.availWidth);   // 1920

  • height:屏幕的像素高度
  • width:屏幕的像素宽度
console.log(screen.width);   // 1920
console.log(screen.height);   // 1080

screen.height 和 screen.width两个属性,一般用来了解设备的分辨率。除非调整显示器的分辨率,否则这两个值可以看作常量,不会发生变化。显示器的分辨率与浏览器设置无关,缩放网页并不会改变分辨率。

可以根据屏幕分辨率,将用户导向不同网页:

if ((screen.width <= 800) && (screen.height <= 600)) {
   window.location.replace('small.html');
} else {
   window.location.replace('wide.html');
}