JS获取屏幕、浏览器、网页高度,宽度信息定位

[ad#content]在JS操作DOM的时候,会经常用到浏览器的高度和宽度来调节DOM的位置,这里特别记录一下。

 代码如下 复制代码

<script language="javascript">
function getDocumentSize(){
var str = '';
str+=document.body.clientWidth+"rn";//网页可见区域宽
str+=document.body.clientHeight+"rn";//网页可见区域高
str+=document.body.offsetWidth+"rn";//网页可见区域高(包括边线的宽)
str+=document.body.offsetHeight+"rn";//网页可见区域高(包括边线的宽)
str+=document.body.scrollWidth+"rn";//网页正文全文宽
str+=document.body.scrollHeight+"rn";//网页正文全文高
str+=document.body.scrollTop+"rn";//网页被卷去的高
str+=document.body.scrollLeft+"rn";//网页被卷去的左
str+=window.screenTop+"rn";//网页正文部分上
str+=window.screenLeft+"rn";//网页正文部分左
str+=window.screen.height+"rn";//屏幕分辨率的高
str+=window.screen.width+"rn";//屏幕分辨率的宽
str+=window.screen.availHeight+"rn";//屏幕可用工作区高度
str+=window.screen.availWidth+"rn";//屏幕可用工作区宽度
alert(str);
}
</script>

这里特别提示两点:

1、document.body.scrollTop与document.body.clientHeight有的时候是无效的,究其原因是因为声明了DOCTYPE:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
当声明了DOCTYPE以后,document.body.scrollTop的值永远等于0,解决的办法是把document.body用document.documentElement替换即可。

2、window.screenTop 与window.screenLeft在Firefox中是没有定义的,它仅能在IE里发挥作用,指的是网页正文部分上与显示器屏幕上的边的距离,刚测试这个的时候我也不是很清楚,其实这个高度也是很有用的,当你需要使用open函数打开一个窗口的时候,就可以利用这个距离来给新打开的窗口定位。

 代码如下 复制代码

function calc_scroll_xy()
{
    _browser_scroll_x = 0;
    _browser_scroll_y = 0;
    if( typeof( window.pageyoffset ) == 'number' )
    {
        //netscape compliant
        _browser_scroll_y = window.pageyoffset;
        _browser_scroll_x = window.pagexoffset;
    } else if( document.body && ( document.body.scrollleft || document.body.scrolltop ) )
    {
        //dom compliant
        _browser_scroll_y = document.body.scrolltop;
        _browser_scroll_x = document.body.scrollleft;
    }
    else if( document.documentelement && ( document.documentelement.scrollleft || document.documentelement.scrolltop ) )
    {
        //ie6 standards compliant mode
        _browser_scroll_y = document.documentelement.scrolltop;
        _browser_scroll_x = document.documentelement.scrollleft;
    }
}

JQuery:

 代码如下 复制代码

$(document).ready(function(){
alert($(window).height()); //浏览器当前窗口可视区域高度
alert($(document).height()); //浏览器当前窗口文档的高度
alert($(document.body).height());//浏览器当前窗口文档body的高度
alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin

alert($(window).width()); //浏览器当前窗口可视区域宽度
alert($(document).width());//浏览器当前窗口文档对象宽度
alert($(document.body).width());//浏览器当前窗口文档body的宽度
alert($(document.body).outerWidth(true));//浏览器当前窗口文档body的总宽度 包括border padding margin

})

1、已经能支持获取多浏览器的内部的视口的宽度和高度信息

2、在IE 9中已经和其他的浏览器(Opera、Chrome、FirFox、Safari)一样,已经能支持用window.innerHeight、window.innerWidth、window.outerHeight、window.outerWidth这四个属性获取浏览器的窗口、视口的宽度高度信息,但是IE9以前的IE版本是没有这些属性的,因此在这样的情况下,我将视口和窗口的概念等同起来了。

2、虽然window有宽度和高度信息,但是不一定是真正浏览器窗口的真正的宽度和高度信息。因为有些浏览器返回的结果中就不含菜单栏、工具栏等的高度信息。

 

实例演示:

在一个垂直内容过多的页面中,使一个DIV总能保持在视口的中心位置(非精确中心位置):

代码:

 代码如下 复制代码
window.onload = window.onresize = function () {
            var top = Math.round(Browser.Page.scrollTop() + (Browser.ViewPort.height() / 2) - (parseInt(document.getElementById("divCenter").style.height) / 2));
            var left = Math.round(Browser.Page.scrollLeft() + (Browser.ViewPort.width() / 2) - (parseInt(document.getElementById("divCenter").style.width) / 2));
            document.getElementById("divCenter").style.top = top + "px";
            document.getElementById("divCenter").style.left = left + "px";
}

 

时间: 2024-10-23 15:15:10

JS获取屏幕、浏览器、网页高度,宽度信息定位的相关文章

JS获取屏幕,浏览器窗口大小,网页高度宽度

 本篇文章主要介绍了JS获取屏幕,浏览器窗口大小,网页高度宽度的实现代码.需要的朋友可以过来参考下,希望对大家有所帮助 网页可见区域宽:document.body.clientWidth  网页可见区域高:document.body.clientHeight  网页可见区域宽:document.body.offsetWidth (包括边线的宽)  网页可见区域高:document.body.offsetHeight (包括边线的宽)  网页正文全文宽:document.body.scrollWi

JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)_javascript技巧

网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 网页正文全文宽:document.body.scrollWidth 网页正文全文高:document.body.scrollHeight 网页被卷去的高:document.body.scr

js获取Html元素的实际宽度高度的方法_javascript技巧

第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度. 小结,因为id.offsetWidth和id.offsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性.注意如果不是写在行内styl

JS获取各种浏览器窗口大小的方法

 本篇文章主要是对JS 获取各种浏览器窗口大小的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 常用: JS 获取浏览器窗口大小   代码如下: // 获取窗口宽度  if (window.innerWidth)  winWidth = window.innerWidth;  else if ((document.body) && (document.body.clientWidth))  winWidth = document.body.clientWidth;  // 获

Android 获取屏幕的多种宽高信息的示例代码

本文主要介绍了Android 获取屏幕的多种宽高信息的示例代码,分享给大家,具体如下: 包含的宽高信息如下图所示: 在模拟器上获取到的数据: 08-26 07:19:32.712 7834-7834/com.czy.screeninfo E/MainActivity: getTotalScreenHeight 1920 08-26 07:19:33.505 7834-7834/com.czy.screeninfo E/MainActivity: getScreenWidth 1080 08-26

JS获取一个未知DIV高度的方法_javascript技巧

本文实例讲述了JS获取一个未知DIV高度的方法.分享给大家供大家参考,具体如下: 通过元素的clientHeight属性能够得到元素的高度,如: var height = element.clientHeight; 这种做法的局限: 1. 如果元素的display属性设置为none, 那么得到的结果为0 2. 在safari浏览器中,需要使用:element.offsetHeight得到实际高度,这是safari浏览器的bug 下面是Prototype提供的方法,能够兼容各种浏览器,同时在元素隐

Android中获取屏幕的长度和宽度

android中获取屏幕的长度和宽度,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得 到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲测一下 测试参数: 测试环境: i9000( 三星) 物理屏幕:480*800px density :1.5 测试代码: // 获取屏幕密度(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏

js获取及修改网页背景色和字体色的方法_javascript技巧

本文实例讲述了js获取及修改网页背景色和字体色的方法.分享给大家供大家参考,具体如下: 获得网页的背景色和字体颜色,方法如下: 思想: 通过取得颜色属性值得到的是 rgb 色,不是我们想要的,所以需要将 rgb 色装换为 十六进制色 ,首先获得rgb色 : 代码如下: 复制代码 代码如下: var rgb = document.getElementById('color').style.backgroundColor; 得到格式如下: rgb(225, 22, 23); 然后进行拆分: 代码如下

Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)

有些时候,我们需要知道当前手机上是否显示了NavigationBar,也就是屏幕底部的虚拟按键. 比如截屏的时候,要获取屏幕的高度,必须包括NavigationBar的高度. 试过网上的多种方法,但是对那种可以通过手势来显示/隐藏的NavigationBar没办法,最后终于找到了一个好办法,看代码: public boolean isNavigationBarShow(){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_M