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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c++发送post请求_request的post方法作用

    c++发送post请求_request的post方法作用介绍:RestSharpRestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件。RestSharp具体以下特性;1、通过NuGet方便引入到任何项目(Install-Packagerestsharp)支持net4.0++2、可以自动反序列化XML和JSON3、支持自定义的序列化与反序列化4、自动检测返回的内容类型5、支持HTTP的GET,POST,PUT,HEAD,OPTIONS,DELETE等操作…

    2025年8月29日
    6
  • 大数据:数据采集平台之Fluentd

    大数据:数据采集平台之Fluentd大数据:数据采集平台之Fluentd官网:http://docs.fluentd.org/articles/quickstartFluentd是一个开源的数据收集框架。Fluentd使用C/Ruby开发,使用JSON文件来统一日志数据。它的可插拔架构,支持各种不同种类和格式的数据源和数据输出。最后它也同时提供了高可靠和很好的扩展性。TreasureData,Inc对该产品提供支持和维…

    2022年5月1日
    127
  • html跳转网页代码_js访问url

    html跳转网页代码_js访问urlJS判断搜索引擎来路跳转代码:varregexp=/\.(sogou|soso|baidu|google|youdao|yahoo|bing|118114|biso|gougou|ifeng|ivc|sooule|niuhu|biso)(\.[a-z0-9\-]+){1,2}\//ig;varwhere=document.referrer;if(regexp.test(where)){

    2022年8月12日
    10
  • java 项目日志管理设计方案[通俗易懂]

    java 项目日志管理设计方案[通俗易懂]java项目日志管理设计方案因项目需要记录整个系统的操作记录,考虑到系统操作日志的数据量,单表很容易达到瓶颈,导致查询效率低下,顾使用分表方案,减小数据库的负担,缩短查询时间。目前对于分表的解决方案有很多,但本篇博文主要讲解博主自行实现的日志管理的解决方案1创建日志表1.1日志表Sql语句如下具体表设计随项目情况而变化表创建SQL语句CREATETABLE`sys_user

    2022年5月20日
    35
  • 推荐一个比较好用的画廊展示图片(支持无限轮播)的控件ViewPagerGallery「建议收藏」

    推荐一个比较好用的画廊展示图片(支持无限轮播)的控件ViewPagerGallery「建议收藏」1.在此我们引用支持无限滑动的3D视觉的画廊效果、平面普通广告栏轮播这个例子中有可以运行的效果,大家可以下载下来先看一下,在我开始使用的时候,发现,想要调整pageitem中的间距,比较困难,并没有暴露方法出来。所以就要看一下源代码,发现,在不使用3D效果,即初始化:initBanner(urlList,false),没有什么问题,(这里说的3D效果,就是左右item要比正在显示的ite…

    2022年4月30日
    55
  • 什么是MVC ?

    什么是MVC ?

    2021年10月15日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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