1. screen

1.1 availHeight/Width

screen.availWidth返回浏览器窗口可占用的水平宽度(单位:像素)。

screen.availHeight返回浏览器窗口在屏幕上可占用的垂直空间,即最大高度。

1.2 availLeft/Top

availTop:浏览器窗口在屏幕上的可占用空间上边距离屏幕上边界的像素值。

availLeft:返回浏览器可用空间左边距离屏幕(系统桌面)左边界的距离。

大多数情况下,该属性返回 0。

如果你在有两个屏幕的电脑上使用该属性,在右侧屏幕计算该属性值时,返回左侧屏幕的宽度(单位:像素),也即左侧屏幕左边界的 X 坐标。

在 Windows 中,该属性值取决于哪个屏幕被设为主屏幕,返回相对于主屏幕左边界的 X 坐标。就是说,即使主屏幕不是左侧的屏幕,它的左边界的 X 坐标也是返回 0。如果副屏幕在主屏幕的左侧,则它拥有负的 X 坐标。

[1] [2] - 左屏幕 availLeft 返回 0,右侧的屏幕返回左侧屏幕的宽度

[2] [1] - 左侧屏幕 availLeft 返回该屏幕的 -width,右侧屏幕返回 0

1.3 colorDepth

colorDepth 属性返回目标设备或缓冲器上的调色板的比特深度。

if (screen.colorDepth<=8)
//为8位屏幕的简单的蓝色背景色
document.body.style.background="#0000FF"
else
//为现代屏幕的华丽的蓝色背景色
document.body.style.background="#87CEFA"

相同的颜色在不同设备中,渲染的视觉色彩不同,可用该属性来进行调色。

1.4 pixelDepth

返回屏幕的位深度/色彩深度(bit depth)。根据CSSOM( CSS对象模型 )视图,为兼容起见,该值总为24。

// 如果没有足够的位深度/色彩深度(bit depth),就选择一个更纯的颜色
if ( window.screen.pixelDepth > 8 ) {
document.style.color = "#FAEBD7";
} else {
document.style.color = "#FFFFFF";
}

1.5 width/height

height返回屏幕的高度(单位:像素)。注意,该属性返回的高度值并不是全部对浏览器窗口可用。小工具(Widgets),如任务栏或其他特殊的程序窗口,可能会减少浏览器窗口和其他应用程序能够利用的空间。

当返回屏幕高度时,IE 会考虑缩放设置。只有当缩放比例为 100% 时,IE 才会返回真实的屏幕高度。

width返回屏幕的宽度。注意,该属性返回的宽度值不一定就是浏览器窗口可使用的宽度。当有其他小工具占据了屏幕空间时,浏览器有时不能占用小工具(如任务栏)占据的空间。window.screen.width 和 window.screen.availWidth 两者不同。相关属性 window.screen.height。

在返回该值时,IE 会考虑缩放设置。只有在缩放比例为 100% 时,IE 才返回真实的屏幕宽度。

1.6 orientation[H5]

type

表示当前屏幕是横屏(landscape-primary)还是竖屏(portrait-primary)。只读属性。orientation.type还有两个值landscape-secondary和portrait –secondary。值portrait-secondary将横屏模式旋转180°

var orientation = screen.orientation || screen.mozOrientation || screen.msOrientation;

if (orientation.type === "landscape-primary") {
console.log("横屏.");
} else if (orientation.type === "landscape-secondary") {
console.log("横屏(另外一个方向。注:横屏有两个方向)");
} else if (orientation.type === "portrait-secondary" || orientation.type === "portrait-primary") {
console.log("竖屏");
}
angle

角度为0等同于自然方向,大部分智能手机的自然方向是portrait-primary;

90°等同于landscape-primary;

180°等同portrait-secondary;

270°等同landscape-secondary。

不同的设备,angle代表不同的关键字。为了获取方向值,浏览器需要运行在全屏模式下。

lock/unlock

通过screen.orientation属性的lock()方法可以调整屏幕方向,其默认值是any,这允许设备根据其物理方向来应用任何方向。值”natural”将在设备的自然方向上显示网站,因设备而异。智能手机通常使用横屏,平板则使用竖屏。

screen.orientation.lock("natural");

上面的示例中,为设备设置自然方向。

当然,Screen Orientation API也允许你定义一个独立的方向,其有四个值可以选择,这已经包含了移动设备所有可能的方向。这四个值分别是: “portrait-primary”, “portrait-secondary”, “landscape-primary”和 “landscape-secondary”。

change事件

通过change事件改变屏幕方向也是可以的,只需要调用addEventListener()为orientation属性注册change事件并添加一个函数(作为事件处理程序)。

screen.orientation.addEventListener("change", function(e) {
alert(screen.orientation.type + " " + screen.orientation.angle);
}, false);

每一次屏幕方向的改变都会触发弹框,显示当前的方向关键字和角度。

当使用Screen Orientation API时,还需要记住一件事:由于要Fullscreen API一起使用才能起作用,所以不应该使用它来设计网站之类的。对于需要全屏模式的浏览器游戏或其他应用程序,它能有更好的效果。

详细使用方式可参见下列网站:HTML5 Screen Orientation API实现横屏或竖屏

浏览器根对象window之screen的更多相关文章

  1. 浏览器根对象window之history

    1. history(H5) Window.history保存用户在一个会话期间的网站访问记录,用户每次访问一个新的URL即创建一个新的历史记录. 1.1 length 返回浏览器历史列表中的 URL ...

  2. 浏览器根对象window之操作方法

    1.1 不常用 alert:带有一条指定消息和一个OK按钮的警告框. confirm:带有指定消息和OK及取消按钮的对话框. prompt:可提示用户进行输入的对话框. print:打印网页. ope ...

  3. 浏览器根对象window之caches

    在控制台输入window. caches可输出一个叫做CacheStorage的对象,它用来存储 Response 对象的.也就是说用来对 HTTP ,响应做缓存的.虽然 localStorage 也 ...

  4. 浏览器根对象window之Location

    1. Location Location 对象包含有关当前 URL 的信息.Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问. 1.1 Loc ...

  5. 浏览器根对象window之值为字符串的属性

    1. string属性 1.1 origin window.origin使用返回的是当前网页的网址.打开百度首页,并在控制台中输入 window.origin 控制台中会输出"https:/ ...

  6. 浏览器根对象window之事件

    1. [事件]动画 onanimationstart onanimationend onanimationiteration onwebkitanimationend onwebkitanimatio ...

  7. 浏览器根对象window之performance

    W3C性能小组引入的新的API,目前IE9以上的浏览器都支持. 为了解决当前性能测试的困难,W3C推出了一套性能API标准,各种浏览器对这套标准的支持如今也逐渐成熟起来.这套API的目的是简化开发者对 ...

  8. 浏览器根对象window之窗体和工具条

    1. 窗体和工具条 1.1 窗体 frames.self.window.parent.top.opener. frames 数组类型,页面中iframe的引用,如果页面有2个iframe,则frame ...

  9. 浏览器根对象window之值为数值的属性

    1. number属性 1.1 length length 属性返回在当前窗口中frames的数量(包括IFRAMES). 该属性值与window.frames.length属性值相等. 1.2 in ...

随机推荐

  1. Java Random介绍

    一.简介 Random类位于java.util包下,此类的实例用于生成伪随机数流.之所以称之为伪随机,是因为真正意义上的随机数(或者称为随机事件)在某次产生过程中是按照实验过程表现的分布概率随机产生的 ...

  2. linux进程管理和系统状态查看命令简介

    1 进程管理简介 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 2 常用命令 2.1 pstree 2.1.1 功能描 ...

  3. JS对象属性命名规则

    JS标识符的命名规则,即变量的命名规则: 标识符只能由字母.数字.下划线和'$'组成 数字不可以作为标识符的首字符 对象属性的命名规则 通过[]操作符为对象添加属性时,属性名称可以是任何字符串(包括只 ...

  4. python入门基础

    Python 入门 变量 什么是变量?变量就是变化的量,核心是"变"和"量"两个字,变就是变化,量就是衡量状态. 为什么需要变量?程序执行的本质就是一系列状态的 ...

  5. LeetCode90:Subsets II

    Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...

  6. Android binder学习一:主要概念

    要看得懂android代码,首先要了解binder机制.binder机制也是android里面比較难以理解的一块,这里记录一下binder的重要概念以及实现.作为备忘. 部分内容来源于网上,如有侵权. ...

  7. 传统controller与controllerAs

    传统controller与controllerAs(前面为传统,后面为controllerAs,分割线分隔): 路由模块: .state('home.packing', { url: '/packin ...

  8. 救援模式(Rescue Mode)、单用户模式(Single-User Mode)、紧急模式(Emergency Mode)的区别与联系

    前天聚餐的时候一航和启飞学长讲到RUCTF中更改root密码要进入单用户模式,我插了一句"有的系统显示的是救援模式",说完后心里一直很虚...(技术上的事还是想好再说)今天查了一下 ...

  9. MySQL的存储引擎与日志说明

    1.1 存储引擎的介绍 1.1.1 文件系统存储 文件系统:操作系统组织和存取数据的一种机制.文件系统是一种软件. 类型:ext2 3 4 ,xfs 数据.  不管使用什么文件系统,数据内容不会变化, ...

  10. MongoDB学习笔记(一)

    最近有些时间,就抽空研究了一下MongoDB,我以前经常使用关系型数据库,如Oracle.MySQL,对MongoDB只是有些很肤浅的了解,最近下决心要好好研究一下,主要的参考书有两本:<Mon ...