龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

js获取当前窗口大小代码(兼容主浏览器)

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
本文章收藏了两个关于取得窗口大小并且兼容所有浏览器的js代码哦,有需要的朋友可以简单的参考一下哦。 例1 代码如下 var pageWidth = window.innerWidth, var pageHeight = window.innerHeight; if(type
本文章收藏了两个关于取得窗口大小并且兼容所有浏览器的js代码哦,有需要的朋友可以简单的参考一下哦。

例1

 代码如下

var pageWidth = window.innerWidth,
var pageHeight = window.innerHeight;
if(typeof pageWidth != "number"){
if(document.compatMode == "number"){
pageWidth = document.documentElement.clientWidth;
pageHeight = document.documentElement.clientHeight;
}else{
pageWidth = document.body.clientWidth;
pageHeight = document.body.clientHeight;
}
}

我们把上面的升级一下

 

 代码如下

var x = document.body.scrollLeft;
var y = document.body.scrollTop;

//获取屏幕宽度
   availWidth = parseInt(window.screen.availWidth);
   availHeight = parseInt(window.screen.availHeight);

//获取可见区域 宽度 高度
   availWidth = parseInt(document.body.clientWidth);
   availHeight = parseInt(document.body.clientHeight);
       
可见区域高度:document.body.clientHeight
总高度:document.body.scrollHeight
可见区域宽度:document.body.clientWidth
总宽度:document.body.scrollWidth

==============================================================

var getWindowInfo=function()
{
var scrollX=0,scrollY=0,width=0,height=0,contentWidth=0,contentHeight=0;
if(typeof(window.pageXOffset)=='number')
{
 scrollX=window.pageXOffset;
 scrollY=window.pageYOffset;
}
else if(document.body&&(document.body.scrollLeft||document.body.scrollTop))
{
 scrollX=document.body.scrollLeft;
 scrollY=document.body.scrollTop;
}
else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop))
{
 scrollX=document.documentElement.scrollLeft;
 scrollY=document.documentElement.scrollTop;
}

if(typeof(window.innerWidth)=='number')
{
 width=window.innerWidth;
 height=window.innerHeight;
}
else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight))
{
 width=document.documentElement.clientWidth;
 height=document.documentElement.clientHeight;
}
else if(document.body&&(document.body.clientWidth||document.body.clientHeight))
{
 width=document.body.clientWidth;
 height=document.body.clientHeight;
}

if(document.documentElement&&(document.documentElement.scrollHeight||document.documentElement.offsetHeight))
{
 if(document.documentElement.scrollHeight>document.documentElement.offsetHeight){
  contentWidth=document.documentElement.scrollWidth;
  contentHeight=document.documentElement.scrollHeight;
 }
 else
 {
  contentWidth=document.documentElement.offsetWidth;
  contentHeight=document.documentElement.offsetHeight;
 }
}
else if(document.body&&(document.body.scrollHeight||document.body.offsetHeight))
{
 if(document.body.scrollHeight>document.body.offsetHeight)
 {
  contentWidth=document.body.scrollWidth;
  contentHeight=document.body.scrollHeight;
 }else{
  contentWidth=document.body.offsetWidth;
  contentHeight=document.body.offsetHeight;
 }
}
else
{
 contentWidth=width;
 contentHeight=height;
}
 if(height>contentHeight)
 height=contentHeight;
 if(width>contentWidth)
 width=contentWidth;
 var rect=new Object();
 rect.ScrollX=scrollX;
 rect.ScrollY=scrollY;
 rect.Width=width;
 rect.Height=height;
 rect.ContentWidth=contentWidth;
 rect.ContentHeight=contentHeight;
 return rect;
}

这个功能更强大,兼容性更强哦。

相关参数说明

网页可见区域宽:document.body.clientWidth  
网页可见区域高:document.body.clientHeight  
网页可见区域宽:document.body.offsetWidth      (包括边线的宽)  
网页可见区域高:document.body.offsetHeight      (包括边线的宽)  
网页正文全文宽:document.body.scrollWidth  
网页正文全文高:document.body.scrollHeight  
网页被卷去的高:document.body.scrollTop  
网页被卷去的左:document.body.scrollLeft  
网页正文部分上:window.screenTop  
网页正文部分左:window.screenLeft  
屏幕分辨率的高:window.screen.height  
屏幕分辨率的宽:window.screen.width  
屏幕可用工作区高度:window.screen.availHeight  
屏幕可用工作区宽度:window.screen.availWidth


精彩图集

赞助商链接