包含js中offsetTop的词条

http://www.itjxue.com  2023-01-26 09:56  来源:未知  点击次数: 

请教一个关于javascript中offsetTop和scrollTop的问题

1、当元素的父容器没有指定定位方式时,指元素与body元素之间的偏移距离;

2、当对父容器指定定位方式(如:position:relative;)时,则指元素与父容器之间的偏移距离;

所以,当没有指定定位方式时,代码中的colee2.offsetTop值已经是元素colee2与body元素之间的偏移距离了。当这部分代码置入页面上方top:0处时,自然没有问题。但是,如果插入到页面下方时,colee2.offsetTop值就已经不再是top:0了,自然就出现位移偏差了,以致滚动执行不正确!

解决办法:只需在colee的css样式中加入”position:absolute”即可。

即:

div id=”colee” style=”overflow:hidden;height:100px;width:200px;position:absolute;”

在Javascript中scrollTop和offsetTop两个属性都代表什么意思,谢谢

scrollTop是

Sets?or?retrieves?the?distance?between?the?top?of?the?object?and?the?topmost?portion?of?the?content?currently?visible?in?the?window.

offsetTop是

Retrieves?the?calculated?top?position?of?the?object?relative?to?the?layout?or?coordinate?parent,?as?specified?by?the?offsetParent?property.

scrollTop,?scrollLeft

返回已经滚动到元素的左边界或上边界的像素数。只有在元素有滚动条的时候,例如,元素的?CSS?overflow?属性设置为?auto?的时候,这些像素才有用。这些属性也只在文档的?body?或?html?标记上定义(这和浏览器有关),并且一起来制定滚动文档的位置。注意,这些属性并不会指定一个?iframe?标记的滚动量。这是非标准的但却得到很好支持的属性。

offsetTop

返回当前元素的上边界到它的包含元素的上边界的偏移量,以像素为单位。

具体可以看下面这幅图

js的offsetTop到底是距离父元素的距离还是距离body的距离,或者是屏幕顶端的距离啊?好混乱

屏幕顶端的距离

网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度)

(javascript) document.documentElement.scrollTop //firefox

(javascript) document.documentElement.scrollLeft //firefox

(javascript) document.body.scrollTop //IE

(javascript) document.body.scrollLeft //IE

(jqurey) $(window).scrollTop()

(jqurey) $(window).scrollLeft()

网页工作区域的高度和宽度

(javascript) document.documentElement.clientHeight// IE firefox

(jqurey) $(window).height()

元素距离文档顶端和左边的偏移值

(javascript) DOM元素对象.offsetTop //IE firefox

(javascript) DOM元素对象.offsetLeft //IE firefox

(jqurey) jq对象.offset().top

(jqurey) jq对象.offset().left

jsz中scrollTop,clientTop,offsetTop

先来一张名气很大的图

看着实在是好晕,于是各种整理后手动画了一个:

发现主要分为几部分:

当定位时,position的移动的距离,

scrollHeight:文档总高度,可滚动总高度(包含元素本身,内外边距,边框)

scrollWidth:文档总宽度,可滚动总宽度(包含元素本身,内外边距,边框)

scrollTop:相对于滚动条顶部的偏移,指滚动条顶端与当前滚动条位置的距离

scrollLeft:相当于滚动与左端的偏移

clientHeight:可视区域高度(不包含边框,滚动条)

clientWidth:可视区域宽度

clientTop:内容区域相对于整个元素的左上角,当有边距时为边距的厚度,无边距时可以为0

clientLeft:内容区域相对于整个区域的左上角,有边距时为边距的宽度,可以为0

offsetHeight:获取自身元素(包含边距,滚动条)

offsetWidth:获取自身元素(包含边距,滚动条)

offsetTop:相对于最近定位祖元素的偏移,(祖元素必须是position,relative,absloute,fixed)

offsetLeft:同offsetTop

返回第一个祖定位元素,若父级元素无定位返回body,若父级元素已经定位返回相对应父级对应元素。

javascript中scrollTop和offsetTop有啥区别

scrollTop是指某个可滚动区块向下滚动的距离,offsetTop则是元素的上边框与父元素的上边框的绝对距离。

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时则不会有问题.

利用这个属性,可以得到当前对象在不同大小的页面中的绝对位置.

6.scrollLeft ? ?:

对象的最左边到对象在当前窗口显示的范围内的左边的距离.

即是在出现了横向滚动条的情况下,滚动条拉动的距离.

7.scrollTop

对象的最顶部到对象在当前窗口显示的范围内的顶边的距离.

即是在出现了纵向滚动条的情况下,滚动条拉动的距离.

8.测试offsetTop和scrollTop的html代码

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"

HTML

HEAD

TITLE New Document /TITLE

SCRIPT LANGUAGE="JavaScript"

!--

function test(){

var oIframe = document.getElementById("div1");

alert(oIframe.offsetTop);

alert(oIframe.scrollTop);

}

//--

/SCRIPT

/HEAD

BODY style="border:1px red solid;padding:20px;margin:0px;"

div id="div1" style="border:1px blue solid;height:400px;width:200px;overflow:auto"

iframe id="iframe1" src="" width="400" height="500" style="border:1px red solid;" scrolling="no"

/iframe

/div

input type="button" value="OK" onclick="test()"/

/BODY

/HTML

script type="text/javascript" /script

(责任编辑:IT教学网)

更多

推荐网络工程师文章