跨浏览器确定窗口的大小不是一件简单的事情。InnerWidth、innerHeight、outerWidth和outerHeight属性9+,Firefox,S
跨浏览器确定窗口的大小不是一件简单的事情。
InnerWidth、innerHeight、outerWidth和outerHeight属性
9+,Firefox,Safari,Opera和Chrome都为此提供了四个属性:innerWidth,innerHeight,outerWidth和outerHeight。
在IE9+中,Firefox、Safari、outerWidth和outerHeight返回浏览器窗口本身的大小。
在Opera中,这两个属性的值代表页面视图容器的大小。这里的页面视图容器指的是Opera中单个选项卡对应的浏览器窗口。
在IE9+、Firefox、Safari和Opera中,innerWidth和innerHeight代表页面视图区域的大小。
在Chrome中,innerWidth、innerHeight和outerWidth、outerHeight返回相同的值,即视口而不是浏览器窗口的大小。
DOM提供的页面可视区域
E8和早期版本不提供获取当前浏览器窗口大小的属性。但是,它通过DOM提供了关于页面可见区域的信息。
在IE、Firefox、Safari、Opera和Chrome中,页面视口的信息保存在document . document element . client width和document . document element . client height中。
在IE6中,这些属性在标准模式下必须有效。在混杂模式下,必须从document.body.clientWidth和document.body.clientHeight中获取相同的信息
对于混杂模式下的Chrome,可以通过document.documentElement或document.body中的clientWidth和clientHeight属性获取视口的大小
虽然最终无法确定浏览器窗口本身的大小,但是可以获得页面视窗的大小,如下所示:
var pageWidth = window.innerWidth;var pageHeight = window.innerHeight;if (typeof pageWidth != "number") {if (document.compatMode == "CSS1Compat") {//页面处于标准模式pageWidth = document.documentElement.clientWidth;pageHeight = document.documentElement.clientHeight;} else {pageWidth = document.body.clientWidth;pageHeight = document.body.clientHeight;}}
移动装置
可视视口
对于移动设备,window.innerWidth和window.innerHeight保存可见视区,即屏幕上可见页面区域的大小。移动IE浏览器不支持这些属性,但是通过document . document element . client width和document . document element . client height提供了相同的信息,随着页面的缩放,这些值会相应地发生变化。
布局视口
在其他移动浏览器中,document.documentElement测量布局视口,即渲染页面的实际大小(与可视视口不同,可视视口只是整个页面的一小部分)。移动IE浏览器将布局视口信息保存在document.body.clientWidth和document.body.clientHeight中,这些值不会随着页面缩放而改变。
由于桌面浏览器的这些差异,在决定使用哪个属性之前,最好检查用户是否正在使用移动设备。
调整浏览器窗口的大小。
使用resize()和resizeBy()方法调整浏览器窗口的大小。这两个方法都接收两个参数,其中resizeTo()接收浏览器窗口的新宽度和高度,而resizeBy()接收新窗口和原始窗口的宽度和高度之差。如下所示:
window.resizeTo(100, 100);window.resizeBy(100, 50);
需要注意的是,这两种方法类似于移动窗口位置的方法,也可能被浏览器禁用。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/131784.html