js中clientHeight、offsetHeight、scrollHeight、scrollTop详解「建议收藏」

js中clientHeight、offsetHeight、scrollHeight、scrollTop详解「建议收藏」clientHeight大家对clientHeight都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。offsetHeightIE、Opera认为offsetHeight=clientHeight+滚动条+边框。NS、FF认为offsetH

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

clientHeight

大家对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。

offsetHeight

IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。 NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。

 

 代码如下 复制代码

<style type=”text/css” media=”all”>

body {font-size:14px;}

a,a:visited {color:#00f;}

#Div_CnLei {

width:300px;

height:200px;

padding:10px;

border:10px solid #ccc;

background:#eee;

font-size:12px;

}

#Div_CnLei p {margin:0;padding:10px;background:#fff;}

</style>

<script type=”text/javascript”>

function Obj(s){

return document.getElementById(s)?document.getElementById(s):s;

}

function GetClientWidth(o){

return Obj(o).clientWidth;

}

function GetClientHeight(o){

return Obj(o).clientHeight;

}

function GetOffsetWidth(o){

return Obj(o).offsetWidth;

}

function GetOffsetHeight(o){

return Obj(o).offsetHeight;

}

</script>

假设 obj 为某个 HTML 控件。

obj.offsetTop 指 obj 距离上方或上层控件的位置,整型,单位像素。

obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素。

obj.offsetWidth 指 obj 控件自身的宽度,整型,单位像素。

obj.offsetHeight 指 obj 控件自身的高度,整型,单位像素。

我们对前面提到的“上方或上层”与“左方或上层”控件作个说明。

例如:

 代码如下 复制代码
<div id=”tool”>
   <input type=”button” value=”提交”>
   <input type=”button” value=”重置”>
</div>

“提交”按钮的 offsetTop 指“提交”按钮距“tool”层上边框的距离,因为距其上边最近的是 “tool” 层的上边框。
“重置”按钮的 offsetTop 指“重置”按钮距“tool”层上边框的距离,因为距其上边最近的是 “tool” 层的上边框。

“提交”按钮的 offsetLeft 指“提交”按钮距“tool”层左边框的距离,因为距其左边最近的是 “tool” 层的左边框。
“重置”按钮的 offsetLeft 指“重置”按钮距“提交”按钮右边框的距离,因为距其左边最近的是“提交”按钮的右边框。

scrollHeight

IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。 NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。

简单地说
clientHeight 就是透过浏览器看内容的这个区域高度。
scrollTop
“卷”起来的高度值
1.offsetTop :
当前对象到其上级层顶部的距离.
不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性.

2.offsetLeft :
当前对象到其上级层左边的距离.
不能对其进行赋值.设置对象到页面左部的距离请用style.left属性.

3.offsetWidth :
当前对象的宽度.
与style.width属性的区别在于:如对象的宽度设定值为百分比宽度,则无论页面变大还是变小,style.width都返回此百分比,而offsetWidth则返回在不同页面中对象的宽度值而不是百分比值

4.offsetHeight :
与style.height属性的区别在于:如对象的宽度设定值为百分比高度,则无论页面变大还是变小,style.height都返回此百分比,而offsetHeight则返回在不同页面中对象的高度值而不是百分比值

5.offsetParent :
当前对象的上级层对象.
注意.如果对象是包括在一个DIV中时,此DIV不会被当做是此对象的上级层,(即对象的上级层会跳过DIV对象)上级层是Table时则不会有问题.
利用这个属性,可以得到当前对象在不同大小的页面中的绝对位置.

 代码如下 复制代码

<!DOCTYPEhtmlPUBLIC”-//W3C//DTDXHTML1.0Transitional//EN””http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> 
<htmlxmlns=”http://www.w3.org/1999/xhtml”> 
<head> 
<metahttp-equiv=”Content-Type”content=”text/html;charset=utf-8″/> 
<title>RainMan</title> 
<styletype=”text/css”> 
#outer{position:absolute;} 
</style> 
<scripttype=”text/javascript”> 
window.οnlοad=function(){ 
  vartarget=document.getElementById(‘target’); 
  varouter=document.getElementById(‘outer’); 
  alert(target.offsetParent==outer);  //true 
}; 
</script> 
</head> 
<body> 
<divid=”outer”class=”test”> 
  <divid=”inner”> 
    <divid=”target”class=”test”>Target<br/>rainman</div> 
  </div> 
</div> 
</body> 
</html> 
   
<!DOCTYPEhtmlPUBLIC”-//W3C//DTDXHTML1.0Transitional//EN””http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> 
<htmlxmlns=”http://www.w3.org/1999/xhtml”> 
<head> 
<metahttp-equiv=”Content-Type”content=”text/html;charset=utf-8″/> 
<title>RainMan</title> 
<styletype=”text/css”> 
</style> 
<scripttype=”text/javascript”> 
window.οnlοad=function(){ 
  vartarget=document.getElementById(‘target’); 
  alert(target.offsetParent==document.body);  //true 
}; 
</script> 
</head> 
<body> 
<divid=”outer”class=”test”> 
  <divid=”inner”> 
    <divid=”target”class=”test”>Target<br/>rainman</div> 
  </div> 
</div> 
</body> 
</html>

6.scrollLeft :
对象的最左边到对象在当前窗口显示的范围内的左边的距离.
即是在出现了横向滚动条的情况下,滚动条拉动的距离.

 代码如下 复制代码

<input type=”button” value=”点一下” οnclick=”move()”> 
<div id=”d” style=”background-color:#ff9966; position:absolute; left:170px; top:100px;width:300;height:300;overflow:scroll” 
οnclick=”alert(‘offsetLeft:’+this.offsetLeft)”> 
<div style=”height:600;width:600″ οnclick=”alert(‘offsetLeft:’+this.offsetLeft)”></div> 
</div> 
<script language=”javascript”> 
function move() 

var d=document.getElementById(“d”) 
a=eval(20) 
d.scrollLeft+=a 

</script>

7.scrollTop
对象的最顶部到对象在当前窗口显示的范围内的顶边的距离.
即是在出现了纵向滚动条的情况下,滚动条拉动的距离.

clientX, clientY是鼠标当前相对于网页的位置,当鼠标位于页面左上角时clientX=0, clientY=0;
offsetX, offsetY是鼠标当前相对于网页中的某一区域的位置,当鼠标位于页面中这一区域的左上角时offsetX=0, offsetY=0;
screenX, screenY是相对于用户显示器的位置
x,y是鼠标当前相对于当前浏览器的位置

 代码如下 复制代码

function getAbsLeft(e){

var l=e.offsetLeft;
while(e=e.offsetParent) l+=e.offsetLeft;
return l;
}
var e = document.getElementById(“liuxiaofan”);
getAbsLeft(e);

以上主要指IE之中,FireFox差异如下: 
IE6.0、FF1.06+: 
clientWidth = width + padding 
clientHeight = height + padding 
offsetWidth = width + padding + border 
offsetHeight = height + padding + border 
IE5.0/5.5: 
clientWidth = width – border 
clientHeight = height – border 
offsetWidth = width 
offsetHeight = height

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195228.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【新版】掩日免杀windows Defender「建议收藏」

    【新版】掩日免杀windows Defender「建议收藏」掩日免杀是一个非常优秀的项目,目前在`4月19`号已经更新,更新的变动较大,支持的种类更多,在这里再试试现在的效果如何:

    2022年8月20日
    15
  • Eclipse断点调试

    Eclipse断点调试作为开发人员,掌握开发环境下的调试技巧十分有必要。去年就想把关于Eclipse断点调试总结下了,由于对时间的掌控程度仍需极大提高,结果拖到今年才写了此篇博文。关于java调试技术还有很多,如JavaDebugInterface等,依据具体项目的需要,还有很多值得去研究和学习的。该博文仅就Eclipse断点调试技巧做下总结,不足够的地方还请大牛们指点。1 Debug视图1.1线程堆栈

    2022年5月21日
    93
  • linux下手动释放内存

    linux下手动释放内存

    2021年8月20日
    55
  • Broadcasts详解「建议收藏」

    Android系统和Android应用程序都可以发送和接收广播,类似于publish-subscribe设计模式。广播在某个特定事件发生时被发送,例如,当各种系统事件发生时(如系统启动或设备开始充电),Android系统就会发送广播。应用程序也可以发送自定义广播,例如,通知其他应用程序他们关注的事件(如数据下载完成)。应用程序可以注册广播接收器。当广播被发送时,系统自动将广播传递到已注册接收该…

    2022年4月4日
    38
  • element table_html中title标签的作用

    element table_html中title标签的作用定义和用法title属性设置或返回元素的咨询标题。语法HTMLElementObject.title=title实例例子1返回body元素的title属性:

关注全栈程序员社区公众号