JavaScript中获取高度和宽度函数总结
作者:bea
html代码: 代码如下: <body> <div class="father" id="father"> <h3>这是父元素,屏幕分辨率是1366*768</h3> <div class="son" id="son"> <h3>这是子元素,祝大家国庆快乐 </h3> <div class="grandson" id="grandson"> <
html代码:
代码如下:
<body>
<div class="father" id="father">
<h3>这是父元素,屏幕分辨率是1366*768</h3>
<div class="son" id="son">
<h3>这是子元素,祝大家国庆快乐 </h3>
<div class="grandson" id="grandson">
<h3>这是孙子元素,祝大家国庆快乐 </h3>
<h3>我的博客:</h3>
<h3>程序爱好者QQ群:</h3>
<h3>259280570 </h3>
<h3>欢迎你加入 </h3>
<h3>国庆快乐 </h3>
</div>
</div>
</div>
<div class="data">
<h3>数据输出</h3>
<div id="data"></div>
</div>
</body>
css:
代码如下:
*
{
margin: 0 auto;
}
.father
{
width: 500px;
height: 750px;
border: 5px solid red;
float: left;
}
.son
{
width: 400px;
height: 300px;
border: 5px solid black;
margin: 20px;
}
.grandson
{
width: 150px;
height: 100px;
border: 5px solid blue;
margin: 20px;
overflow: auto;
}
.data
{
width: 600px;
height: 750px;
border: 5px solid red;
float: left;
margin-left: 15px;
}
js:
代码如下:
window.onload = function()
{
/*获取元素对象*/
var father = document.getElementById('father');
var son = document.getElementById('son');
var grandson = document.getElementById('grandson');
var data = document.getElementById('data');
data.innerHTML = "<h3>获取视窗大小(跟窗口大小有关)</h3>";
data.innerHTML += "document.body可见区域宽: "+document.body.clientWidth+"<br/>";
data.innerHTML += "document.body可见区域高: "+document.body.clientHeight+"<br/>";
data.innerHTML += "window.innerWidth可见区域宽: "+window.innerWidth+"<br/>";
data.innerHTML += "window.innerHeight可见区域高: "+window.innerHeight+"<br/>";
data.innerHTML += "document.documentElement可见区域宽: "+document.documentElement.clientWidth+"<br/>";
data.innerHTML += "document.documentElement可见区域高: "+document.documentElement.clientHeight+"<br/>";
data.innerHTML += "<h3>获取元素自身大小(跟是否有滚动条无关)</h3>";
data.innerHTML += ".son自身宽度(offsetWidth属性,包括左右边框):"+son.offsetWidth+"<br/>";
data.innerHTML += ".son自身高度(offsetHeight属性,包括上下边框):"+son.offsetHeight+"<br/>";
data.innerHTML += ".son可视宽度(clientWidth属性,不包括左右边框):"+son.clientWidth+"<br/>";
data.innerHTML += ".son可视高度(clientHeight属性,不包括上下边框):"+son.clientHeight+"<br/>";
data.innerHTML += "<h3>获取.grandson滚动大小和可视大小</h3>";
data.innerHTML += ".grandson滚动宽度(scrollWidth属性):"+grandson.scrollWidth+"<br/>";
data.innerHTML += ".grandson滚动高度(scrollHeight属性):"+grandson.scrollHeight+"<br/>";
data.innerHTML += ".grandson可视宽度(clientWidth属性,不包括竖直滚动条和border):"+grandson.clientWidth+"<br/>";
data.innerHTML += ".grandson可视高度(clientHeight属性,不包括水平滚动条和border):"+grandson.clientHeight+"<br/>";
data.innerHTML += "<h3>获取.grandson被卷去的大小(跟滚动条的位置有关)</h3>";
data.innerHTML += ".grandson被卷去的高(scrollTop属性,竖直滚动条滑到最底端):"+grandson.scrollTop+"<br/>";
data.innerHTML += ".grandson被卷去的左(scrollLeft属性,水平滚动条滑到最右端):"+grandson.scrollLeft+"<br/>";
data.innerHTML += "<h3>获取浏览器窗口位置(跟窗口大小有关)</h3>";
/*
*IE、Chrome、Safari、Opera 都提供了支持 window.screenLeft 和 *window.screenTop,但是Firxfox不支持这个两个属性;
*Firxfox、Chrome、Safari、Opera 都提供了支持 window.screenX *和 window.screenY,但是 IE 不支持这个两个属性;
*/
var leftPos = (typeof window.screenLeft == 'number')?window.screenLeft:window.screenX;
var topPos = (typeof window.screenTop == 'number')?window.screenTop:window.screenY;
data.innerHTML += "body网页正文部分上(window.screenTop(Y)):"+ topPos+"<br/>";
data.innerHTML += "body网页正文部分左(window.screenLeft(X)):"+ leftPos+"<br/>";
data.innerHTML += "<h3>获取屏幕分辨率</h3>";
data.innerHTML += "屏幕分辨率的高(window.screen.height):"+ window.screen.height+"<br/>";
data.innerHTML += "屏幕分辨率的宽(window.screen.width):"+ window.screen.width+"<br/>";
data.innerHTML += "<h3>获取屏幕可用的高宽</h3>";
data.innerHTML += "屏幕分辨率的高(window.screen.availHeight):"+ window.screen.availHeight+"<br/>";
data.innerHTML += "屏幕分辨率的宽(window.screen.availWidth):"+ window.screen.availWidth+"<br/>";
data.innerHTML += "<h3>获取.father的边框大小</h3>";
data.innerHTML += ".father上边框(clientTop):"+ father.clientTop+"<br/>";
data.innerHTML += ".father左边框(clientLeft):"+ father.clientLeft+"<br/>";
data.innerHTML += "<h3>获取.son到父元素边界的距离(即对应margin+父元素对应的border)</h3>";
data.innerHTML += ".son到父元素上边界(offsetTop):"+ son.offsetTop+"<br/>";
data.innerHTML += ".son到父元素左边界(offsetLeft):"+ son.offsetLeft+"<br/>";
}
ps:浏览器对盒子的解析存在差异,所以以上得出的数据也会存在小小差异。附图一张。
完整代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8" />
<title>test</title>
<style type="text/css">
*
{
margin: 0 auto;
}
.father
{
width: 500px;
height: 750px;
border: 5px solid red;
float: left;
}
.son
{
width: 400px;
height: 300px;
border: 5px solid black;
margin: 20px;
}
.grandson
{
width: 150px;
height: 100px;
border: 5px solid blue;
margin: 20px;
overflow: auto;
}
.data
{
width: 600px;
height: 750px;
border: 5px solid red;
float: left;
margin-left: 15px;
}
</style>
<script type="text/javascript">
window.onload = function()
{
/*获取元素对象*/
var father = document.getElementById('father');
var son = document.getElementById('son');
var grandson = document.getElementById('grandson');
var data = document.getElementById('data');
data.innerHTML = "<h3>获取视窗大小(跟窗口大小有关)</h3>";
data.innerHTML += "document.body可见区域宽: "+document.body.clientWidth+"<br/>";
data.innerHTML += "document.body可见区域高: "+document.body.clientHeight+"<br/>";
data.innerHTML += "window.innerWidth可见区域宽: "+window.innerWidth+"<br/>";
data.innerHTML += "window.innerHeight可见区域高: "+window.innerHeight+"<br/>";
data.innerHTML += "document.documentElement可见区域宽: "+document.documentElement.clientWidth+"<br/>";
data.innerHTML += "document.documentElement可见区域高: "+document.documentElement.clientHeight+"<br/>";
data.innerHTML += "<h3>获取元素自身大小(跟是否有滚动条无关)</h3>";
data.innerHTML += ".son自身宽度(offsetWidth属性,包括左右边框):"+son.offsetWidth+"<br/>";
data.innerHTML += ".son自身高度(offsetHeight属性,包括上下边框):"+son.offsetHeight+"<br/>";
data.innerHTML += ".son可视宽度(clientWidth属性,不包括左右边框):"+son.clientWidth+"<br/>";
data.innerHTML += ".son可视高度(clientHeight属性,不包括上下边框):"+son.clientHeight+"<br/>";
data.innerHTML += "<h3>获取.grandson滚动大小和可视大小</h3>";
data.innerHTML += ".grandson滚动宽度(scrollWidth属性):"+grandson.scrollWidth+"<br/>";
data.innerHTML += ".grandson滚动高度(scrollHeight属性):"+grandson.scrollHeight+"<br/>";
data.innerHTML += ".grandson可视宽度(clientWidth属性,不包括竖直滚动条和border):"+grandson.clientWidth+"<br/>";
data.innerHTML += ".grandson可视高度(clientHeight属性,不包括水平滚动条和border):"+grandson.clientHeight+"<br/>";
data.innerHTML += "<h3>获取.grandson被卷去的大小(跟滚动条的位置有关)</h3>";
data.innerHTML += ".grandson被卷去的高(scrollTop属性,竖直滚动条滑到最底端):"+grandson.scrollTop+"<br/>";
data.innerHTML += ".grandson被卷去的左(scrollLeft属性,水平滚动条滑到最右端):"+grandson.scrollLeft+"<br/>";
data.innerHTML += "<h3>获取浏览器窗口位置(跟窗口大小有关)</h3>";
/*
*IE、Chrome、Safari、Opera 都提供了支持 window.screenLeft 和 *window.screenTop,但是Firxfox不支持这个两个属性;
*Firxfox、Chrome、Safari、Opera 都提供了支持 window.screenX *和 window.screenY,但是 IE 不支持这个两个属性;
*/
var leftPos = (typeof window.screenLeft == 'number')?window.screenLeft:window.screenX;
var topPos = (typeof window.screenTop == 'number')?window.screenTop:window.screenY;
data.innerHTML += "body网页正文部分上(window.screenTop(Y)):"+ topPos+"<br/>";
data.innerHTML += "body网页正文部分左(window.screenLeft(X)):"+ leftPos+"<br/>";
data.innerHTML += "<h3>获取屏幕分辨率</h3>";
data.innerHTML += "屏幕分辨率的高(window.screen.height):"+ window.screen.height+"<br/>";
data.innerHTML += "屏幕分辨率的宽(window.screen.width):"+ window.screen.width+"<br/>";
data.innerHTML += "<h3>获取屏幕可用的高宽</h3>";
data.innerHTML += "屏幕分辨率的高(window.screen.availHeight):"+ window.screen.availHeight+"<br/>";
data.innerHTML += "屏幕分辨率的宽(window.screen.availWidth):"+ window.screen.availWidth+"<br/>";
data.innerHTML += "<h3>获取.father的边框大小</h3>";
data.innerHTML += ".father上边框(clientTop):"+ father.clientTop+"<br/>";
data.innerHTML += ".father左边框(clientLeft):"+ father.clientLeft+"<br/>";
data.innerHTML += "<h3>获取.son到父元素边界的距离(即对应margin+父元素对应的border)</h3>";
data.innerHTML += ".son到父元素上边界(offsetTop):"+ son.offsetTop+"<br/>";
data.innerHTML += ".son到父元素左边界(offsetLeft):"+ son.offsetLeft+"<br/>";
}
</script>
</head>
<body>
<div class="father" id="father">
<h3>这是父元素,屏幕分辨率是1366*768</h3>
<div class="son" id="son">
<h3>这是子元素,祝大家国庆快乐 </h3>
<div class="grandson" id="grandson">
<h3>这是孙子元素,祝大家国庆快乐 </h3>
<h3>我的博客:</h3>
<h3>程序爱好者QQ群:</h3>
<h3>259280570 </h3>
<h3>欢迎你加入 </h3>
<h3>国庆快乐 </h3>
</div>
</div>
</div>
<div class="data">
<h3>数据输出</h3>
<div id="data"></div>
</div>
</body>
</html>
有用 | 无用
代码如下:
<body>
<div class="father" id="father">
<h3>这是父元素,屏幕分辨率是1366*768</h3>
<div class="son" id="son">
<h3>这是子元素,祝大家国庆快乐 </h3>
<div class="grandson" id="grandson">
<h3>这是孙子元素,祝大家国庆快乐 </h3>
<h3>我的博客:</h3>
<h3>程序爱好者QQ群:</h3>
<h3>259280570 </h3>
<h3>欢迎你加入 </h3>
<h3>国庆快乐 </h3>
</div>
</div>
</div>
<div class="data">
<h3>数据输出</h3>
<div id="data"></div>
</div>
</body>
css:
代码如下:
*
{
margin: 0 auto;
}
.father
{
width: 500px;
height: 750px;
border: 5px solid red;
float: left;
}
.son
{
width: 400px;
height: 300px;
border: 5px solid black;
margin: 20px;
}
.grandson
{
width: 150px;
height: 100px;
border: 5px solid blue;
margin: 20px;
overflow: auto;
}
.data
{
width: 600px;
height: 750px;
border: 5px solid red;
float: left;
margin-left: 15px;
}
js:
代码如下:
window.onload = function()
{
/*获取元素对象*/
var father = document.getElementById('father');
var son = document.getElementById('son');
var grandson = document.getElementById('grandson');
var data = document.getElementById('data');
data.innerHTML = "<h3>获取视窗大小(跟窗口大小有关)</h3>";
data.innerHTML += "document.body可见区域宽: "+document.body.clientWidth+"<br/>";
data.innerHTML += "document.body可见区域高: "+document.body.clientHeight+"<br/>";
data.innerHTML += "window.innerWidth可见区域宽: "+window.innerWidth+"<br/>";
data.innerHTML += "window.innerHeight可见区域高: "+window.innerHeight+"<br/>";
data.innerHTML += "document.documentElement可见区域宽: "+document.documentElement.clientWidth+"<br/>";
data.innerHTML += "document.documentElement可见区域高: "+document.documentElement.clientHeight+"<br/>";
data.innerHTML += "<h3>获取元素自身大小(跟是否有滚动条无关)</h3>";
data.innerHTML += ".son自身宽度(offsetWidth属性,包括左右边框):"+son.offsetWidth+"<br/>";
data.innerHTML += ".son自身高度(offsetHeight属性,包括上下边框):"+son.offsetHeight+"<br/>";
data.innerHTML += ".son可视宽度(clientWidth属性,不包括左右边框):"+son.clientWidth+"<br/>";
data.innerHTML += ".son可视高度(clientHeight属性,不包括上下边框):"+son.clientHeight+"<br/>";
data.innerHTML += "<h3>获取.grandson滚动大小和可视大小</h3>";
data.innerHTML += ".grandson滚动宽度(scrollWidth属性):"+grandson.scrollWidth+"<br/>";
data.innerHTML += ".grandson滚动高度(scrollHeight属性):"+grandson.scrollHeight+"<br/>";
data.innerHTML += ".grandson可视宽度(clientWidth属性,不包括竖直滚动条和border):"+grandson.clientWidth+"<br/>";
data.innerHTML += ".grandson可视高度(clientHeight属性,不包括水平滚动条和border):"+grandson.clientHeight+"<br/>";
data.innerHTML += "<h3>获取.grandson被卷去的大小(跟滚动条的位置有关)</h3>";
data.innerHTML += ".grandson被卷去的高(scrollTop属性,竖直滚动条滑到最底端):"+grandson.scrollTop+"<br/>";
data.innerHTML += ".grandson被卷去的左(scrollLeft属性,水平滚动条滑到最右端):"+grandson.scrollLeft+"<br/>";
data.innerHTML += "<h3>获取浏览器窗口位置(跟窗口大小有关)</h3>";
/*
*IE、Chrome、Safari、Opera 都提供了支持 window.screenLeft 和 *window.screenTop,但是Firxfox不支持这个两个属性;
*Firxfox、Chrome、Safari、Opera 都提供了支持 window.screenX *和 window.screenY,但是 IE 不支持这个两个属性;
*/
var leftPos = (typeof window.screenLeft == 'number')?window.screenLeft:window.screenX;
var topPos = (typeof window.screenTop == 'number')?window.screenTop:window.screenY;
data.innerHTML += "body网页正文部分上(window.screenTop(Y)):"+ topPos+"<br/>";
data.innerHTML += "body网页正文部分左(window.screenLeft(X)):"+ leftPos+"<br/>";
data.innerHTML += "<h3>获取屏幕分辨率</h3>";
data.innerHTML += "屏幕分辨率的高(window.screen.height):"+ window.screen.height+"<br/>";
data.innerHTML += "屏幕分辨率的宽(window.screen.width):"+ window.screen.width+"<br/>";
data.innerHTML += "<h3>获取屏幕可用的高宽</h3>";
data.innerHTML += "屏幕分辨率的高(window.screen.availHeight):"+ window.screen.availHeight+"<br/>";
data.innerHTML += "屏幕分辨率的宽(window.screen.availWidth):"+ window.screen.availWidth+"<br/>";
data.innerHTML += "<h3>获取.father的边框大小</h3>";
data.innerHTML += ".father上边框(clientTop):"+ father.clientTop+"<br/>";
data.innerHTML += ".father左边框(clientLeft):"+ father.clientLeft+"<br/>";
data.innerHTML += "<h3>获取.son到父元素边界的距离(即对应margin+父元素对应的border)</h3>";
data.innerHTML += ".son到父元素上边界(offsetTop):"+ son.offsetTop+"<br/>";
data.innerHTML += ".son到父元素左边界(offsetLeft):"+ son.offsetLeft+"<br/>";
}
ps:浏览器对盒子的解析存在差异,所以以上得出的数据也会存在小小差异。附图一张。
完整代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8" />
<title>test</title>
<style type="text/css">
*
{
margin: 0 auto;
}
.father
{
width: 500px;
height: 750px;
border: 5px solid red;
float: left;
}
.son
{
width: 400px;
height: 300px;
border: 5px solid black;
margin: 20px;
}
.grandson
{
width: 150px;
height: 100px;
border: 5px solid blue;
margin: 20px;
overflow: auto;
}
.data
{
width: 600px;
height: 750px;
border: 5px solid red;
float: left;
margin-left: 15px;
}
</style>
<script type="text/javascript">
window.onload = function()
{
/*获取元素对象*/
var father = document.getElementById('father');
var son = document.getElementById('son');
var grandson = document.getElementById('grandson');
var data = document.getElementById('data');
data.innerHTML = "<h3>获取视窗大小(跟窗口大小有关)</h3>";
data.innerHTML += "document.body可见区域宽: "+document.body.clientWidth+"<br/>";
data.innerHTML += "document.body可见区域高: "+document.body.clientHeight+"<br/>";
data.innerHTML += "window.innerWidth可见区域宽: "+window.innerWidth+"<br/>";
data.innerHTML += "window.innerHeight可见区域高: "+window.innerHeight+"<br/>";
data.innerHTML += "document.documentElement可见区域宽: "+document.documentElement.clientWidth+"<br/>";
data.innerHTML += "document.documentElement可见区域高: "+document.documentElement.clientHeight+"<br/>";
data.innerHTML += "<h3>获取元素自身大小(跟是否有滚动条无关)</h3>";
data.innerHTML += ".son自身宽度(offsetWidth属性,包括左右边框):"+son.offsetWidth+"<br/>";
data.innerHTML += ".son自身高度(offsetHeight属性,包括上下边框):"+son.offsetHeight+"<br/>";
data.innerHTML += ".son可视宽度(clientWidth属性,不包括左右边框):"+son.clientWidth+"<br/>";
data.innerHTML += ".son可视高度(clientHeight属性,不包括上下边框):"+son.clientHeight+"<br/>";
data.innerHTML += "<h3>获取.grandson滚动大小和可视大小</h3>";
data.innerHTML += ".grandson滚动宽度(scrollWidth属性):"+grandson.scrollWidth+"<br/>";
data.innerHTML += ".grandson滚动高度(scrollHeight属性):"+grandson.scrollHeight+"<br/>";
data.innerHTML += ".grandson可视宽度(clientWidth属性,不包括竖直滚动条和border):"+grandson.clientWidth+"<br/>";
data.innerHTML += ".grandson可视高度(clientHeight属性,不包括水平滚动条和border):"+grandson.clientHeight+"<br/>";
data.innerHTML += "<h3>获取.grandson被卷去的大小(跟滚动条的位置有关)</h3>";
data.innerHTML += ".grandson被卷去的高(scrollTop属性,竖直滚动条滑到最底端):"+grandson.scrollTop+"<br/>";
data.innerHTML += ".grandson被卷去的左(scrollLeft属性,水平滚动条滑到最右端):"+grandson.scrollLeft+"<br/>";
data.innerHTML += "<h3>获取浏览器窗口位置(跟窗口大小有关)</h3>";
/*
*IE、Chrome、Safari、Opera 都提供了支持 window.screenLeft 和 *window.screenTop,但是Firxfox不支持这个两个属性;
*Firxfox、Chrome、Safari、Opera 都提供了支持 window.screenX *和 window.screenY,但是 IE 不支持这个两个属性;
*/
var leftPos = (typeof window.screenLeft == 'number')?window.screenLeft:window.screenX;
var topPos = (typeof window.screenTop == 'number')?window.screenTop:window.screenY;
data.innerHTML += "body网页正文部分上(window.screenTop(Y)):"+ topPos+"<br/>";
data.innerHTML += "body网页正文部分左(window.screenLeft(X)):"+ leftPos+"<br/>";
data.innerHTML += "<h3>获取屏幕分辨率</h3>";
data.innerHTML += "屏幕分辨率的高(window.screen.height):"+ window.screen.height+"<br/>";
data.innerHTML += "屏幕分辨率的宽(window.screen.width):"+ window.screen.width+"<br/>";
data.innerHTML += "<h3>获取屏幕可用的高宽</h3>";
data.innerHTML += "屏幕分辨率的高(window.screen.availHeight):"+ window.screen.availHeight+"<br/>";
data.innerHTML += "屏幕分辨率的宽(window.screen.availWidth):"+ window.screen.availWidth+"<br/>";
data.innerHTML += "<h3>获取.father的边框大小</h3>";
data.innerHTML += ".father上边框(clientTop):"+ father.clientTop+"<br/>";
data.innerHTML += ".father左边框(clientLeft):"+ father.clientLeft+"<br/>";
data.innerHTML += "<h3>获取.son到父元素边界的距离(即对应margin+父元素对应的border)</h3>";
data.innerHTML += ".son到父元素上边界(offsetTop):"+ son.offsetTop+"<br/>";
data.innerHTML += ".son到父元素左边界(offsetLeft):"+ son.offsetLeft+"<br/>";
}
</script>
</head>
<body>
<div class="father" id="father">
<h3>这是父元素,屏幕分辨率是1366*768</h3>
<div class="son" id="son">
<h3>这是子元素,祝大家国庆快乐 </h3>
<div class="grandson" id="grandson">
<h3>这是孙子元素,祝大家国庆快乐 </h3>
<h3>我的博客:</h3>
<h3>程序爱好者QQ群:</h3>
<h3>259280570 </h3>
<h3>欢迎你加入 </h3>
<h3>国庆快乐 </h3>
</div>
</div>
</div>
<div class="data">
<h3>数据输出</h3>
<div id="data"></div>
</div>
</body>
</html>
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JavaScript设计模式之外观模式实例
- JavaScript中的无阻塞加载性能优化方案
- JavaScript设计模式之策略模式实例
- JavaScript运行机制之事件循环(Event Loop)详解
- Javascript 读取操作Sql中的Xml字段
- Javascript验证用户输入URL地址是否为空及格式是否正确
- 使用js Math.random()函数生成n到m间的随机数字
- 分享一款基于jQuery的视频播放插件
- 使用jQuery.wechat构建微信WEB应用
- 使用jQuery将多条数据插入模态框的实现代码
- get(0).tagName获得作用标签示例代码
- 一个css与js结合的下拉菜单支持主流浏览器
- Javascript获取当前日期的农历日期代码
- javascript中通过arguments参数伪装方法重载
- 利用原生JavaScript获取元素样式只是获取而已
- javascript学习笔记(八)正则表达式
- javascript学习笔记(七)Ajax和Http状态码
- javascript学习笔记(六)数据类型和JSON格式
- javascript学习笔记(五)原型和原型链详解