首先,这是个痛苦的尝试。
在工作中尝试把一个FLASH居中全屏放置,窗口RESIZE的时候和页面SCROLL的时候都要动态变化,需要取得当前窗口显示区域的WIDTH与HEIGHT,翻了翻资料脑子就一半面一半水搅匀了。类似的参数我全列出来:
window.screen.width: | document.body.offsetWidth: | document.documentElement.offsetWidth: |
window.screen.height: | document.body.offsetHeight: | document.documentElement.offsetHeight: |
window.screen.availWidth: | document.body.scrollWidth: | document.documentElement.scrollWidth: |
window.screen.availHeight: | document.body.scrollHeight: | document.documentElement.scrollHeight: |
window.scrollMaxX: | document.body.scrollLeft: | document.documentElement.scrollLeft: |
window.scrollMaxY: | document.body.scrollTop: | document.documentElement.scrollTop: |
window.scrollX: | document.body.clientTop: | document.documentElement.clientTop: |
window.scrollY: | document.body.clientLeft: | document.documentElement.clientLeft: |
window.pageXOffset: | document.body.clientWidth: | document.documentElement.clientWidth: |
window.pageYOffset: | document.body.clientHeight: | document.documentElement.clientHeight: |
window.screenX: | document.width: | |
window.screenY: | document.height: | |
window.innerWidth: | ||
window.innerHeight: | ||
window.screen.availTop | ||
window.screen.availLeft |
而且我痛苦的发现,同一个属性,在不同的浏览器的JS取值是不一样的,甚至是无效的,就算都在IE中不同版本的值也不一样的,W3C的标准就从没被完整执行过,微软丈着本钱厚,肆意修改其定义,而且朝三暮四,同样一个事在版本升级时也搞出不同的标准来,一看开发组群就不是一个娘养的。
就在同一个版本同一浏览器中,标准模式与混杂模式的定义也大不相同,比如document.documentElement.scrollWidth和document.body.scrollWidth,在混杂模式中,后者有效前者无效,在标准模式中前者有效后者无效,直接让人崩溃。无奈之下,把这个参数用JS统一列出来,一个个做实验,这才做成了一个完整的结果。如下表,当然,这只是在标准模式下,混杂模式我一般不用,也没精力去研究了。
IE6 | IE8 | FF | OPREA | CHROME | |
window.screen.width: | 屏幕宽 | ||||
window.screen.height: | 屏幕高 | ||||
window.screen.availWidth: | 窗口最大化后宽度 | ||||
window.screen.availHeight: | 窗口最大后的高度 | ||||
window.scrollMaxX: | 最大横向滚动幅度,即BODY加左MARGIN减去窗口显示区不含滚动棒的宽度后的值 | ||||
window.scrollMaxY: | 最大纵向滚动幅度,即BODY加上下MARGIN减去窗口显示区不含滚动棒的高度后的值 | ||||
window.scrollX: | 左滚动值 | ||||
window.scrollY: | 上滚动值 | ||||
window.pageXOffset: | 左滚动值 | ||||
window.pageYOffset: | 上滚动值 | ||||
window.screenX: | 窗口左上角离屏幕左上角横向距离 | 标准模式下均为0. | 窗口左上角离屏幕左上角横向距离 | ||
window.screenY: | 窗口左上角离屏幕左上角纵向距离 | 标准模式下均为0. | 窗口左上角离屏幕左上角纵向距离 | ||
window.innerWidth: | 窗口显示区宽含滚动棒,同IE8的document.documentElement.offsetWidth: | ||||
window.innerHeight: | 窗口显示区高含滚动棒,同IE的document.documentElement.offsetHeight: | ||||
window.screen.availTop | 窗口最大化后的window.screenX: | 窗口最大化后的window.screenX: | |||
window.screen.availLeft | 窗口最大化后的window.screenY: | 窗口最大化后的window.screenY: | |||
document.body.offsetWidth: | 窗口显示区不含滚动棒宽度减去左右margin值后的数字/BODY宽度两者取大值 | 窗口显示区不含滚动棒宽度减左右MARGIN,最小为0 | |||
document.body.offsetHeight: | BODY高度,不含滚动棒与MARGIN | ||||
document.body.scrollWidth: | 同IE6的document.body.offsetWidth: | 同IE8,FF,oprea的document.body.offsetWidth: | 浏览器窗口的宽度,最小值取BODY加MARGINLEFT值,不含滚动棒 | ||
document.body.scrollHeight: | 同IE,FF,OPREA的document.body.offsetHeight: | BODY高度加MARGIN值/窗口显示区高度不含滚动棒取两者取其大 | |||
document.body.scrollLeft: | 标准模式下均为0. | 左滚动值 | |||
document.body.scrollTop: | 上滚动值 | ||||
document.body.clientTop: | 标准模式下均为0. | ||||
document.body.clientLeft: | 标准模式下均为0. | ||||
document.body.clientWidth: | 窗口显示区不含滚动棒宽度/BODY宽度两者之最大值 | 同IE8,FF,oprea的document.body.offsetWidth: | |||
document.body.clientHeight: | 同IE,FF,OPREA的document.body.offsetHeight: | ||||
document.documentElement.offsetWidth: | 窗口显示区的宽度,含滚动棒 | 浏览器窗口的宽度,不含滚动棒 | |||
document.documentElement.offsetHeight: | 窗口显示区的高度,含滚动棒 | BODY高度加MARGIN | |||
document.documentElement.scrollWidth: | 窗口显示区宽度不含滚动棒/BODY加两边MARGIN两者中大值 | 窗口显示区不含滚动棒宽度/BODY宽度加左GARGIN值两者中最大值 | |||
document.documentElement.scrollHeight: | BODY的高度 | BODY加上下MARGIN值 | 窗口显示区不含滚动棒高度/body加上下MARGIN两者中最大值 | 同IE8 | |
document.documentElement.scrollLeft: | 左滚动值 | 0 | |||
document.documentElement.scrollTop: | 上滚动值 | 0 | |||
document.documentElement.clientTop: | 2 | 标准模式下均为0. | |||
document.documentElement.clientLeft: | 2 | 标准模式下均为0. | |||
document.documentElement.clientWidth: | 窗口显示区的宽度,不含滚动棒 | ||||
document.documentElement.clientHeight: | 窗口显示区的高度,不含滚动棒 | ||||
document.width: | 同IE8,FF,oprea的document.body.offsetWidth: | 同document.body.scrollWidth | |||
document.height: | 同IE8,FF,oprea的document.body.offsetWidth: | document.body.s |
已有 0人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐