测试浏览器傲游2(ie6内核)、火狐4、google8.0(分标率1280)
一、浏览器可视区域-宽和高
可视区域就是不包括上下左右的工具栏、状态栏(滚动条特殊)。代码:
var pageWidth = document.documentElement.clientWidth,
pageHeight = document.documentElement.clientHeight;
可视宽:ie中竖向滚动条影响pageWidth的值。就拿1280分辨率(窗口最大化情况)来举例,ie浏览器下pageWidth的值是1261(减去了滚动条的宽),而火狐和谷歌浏览器下pageWidth是1280。ie默认是有滚动条的(即使内容没超1屏),而火狐和webkit内核默认没有竖向滚动条。即使有了滚动条,火狐和谷歌浏览器中pageWidth值依然是1280;
可视高:由于浏览器工具栏和状态栏高度可能不一样,所以pageHeight的值不一样很正常(页面基本不出现横向滚动条,滚动条影响可以不考虑)。
二、页面内容-宽和高
var contWidth = document.documentElement.scrollWidth,
contHeight = document.documentElement.scrollHeight;
1.没有滚动条情况下:
内容宽:无论内容宽度有没有填满浏览器的宽,contWidth和pageWidth一样;
内容高:在火狐浏览器,contHeight不管内容多高都和pageHeight值相等,但在另外2个浏览器下是内容实际高度,假如只有2行文字,那么可能是38px高。
2.在有滚动条情况下:
内容宽:contWidth在3个浏览器下相等,假如有个div宽是1400px,那这个值就是1400px;
内容高:contHeight在3个浏览器下相等。
三、页面实际宽高
var sWidth = contWidth,
sHeight = Math.max(pageHeight, contHeight);
实际宽:由于contWidth的值总都大于等于pageWidth,取contWidth即可;
实际高:没有竖向滚动条时候取pageHeight,反之取contHeight,两者取其大即可。