jquery 怎样获取元素相对父元素的偏移(距离)说明:父元素有滚动条的!

jquery 怎样获取元素相对父元素的偏移(距离)说明:父元素有滚动条的!,第1张

元素的顶部与父元素的顶部(实际的顶部,不是滚动后的顶部)的距离是 offsetTop,而父元素滚动后的顶部与实际顶部的距离是 scrollTop,所以只要 元素offsetTop-父元素scrollTop,就是元素与父元素滚动后实际可见的那个顶部的距离

先来一张名气很大的图

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

发现主要分为几部分:

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

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

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

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

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

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

clientWidth:可视区域宽度

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

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

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

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

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

offsetLeft:同offsetTop

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

解释:当元素的滚动条滚动时触发的事件。

onscroll事件貌似任何实体元素都可以绑定,这里的实体元素包括DOM元素、window元素、document元素。

用法即:elementonscroll=function(){};

需要注意的是,滚动条一定要出现,而且滚动条是属于这元素的,例如:

因为外层wrap的高度小于内层inner的高度,所以当设置overflow:auto时会出现滚动条,当拖动滚动条时就会触发wrap的onscroll事件,而不是inner的onscroll事件,即这滚动条属于wrap而不是属于inner,明白这点十分重要,对下面理解的scrollTop、scrollHeight一样道理。

解释:元素滚动条内的顶部隐藏部分的高度。

scrollTop属性只有DOM元素才有,window/document没有。

用法1:获取值 var top = elementscrollTop;//返回数字,单位像素

用法2:设置值 elementscrollTop = 200;

对上面的例子来说,控制滚动条的位置是wrapscrollTop=xx;而不是innerscrollTop,道理同上。

兼容性问题:获得整个文档scrollTop,IE是documentdocumentElementscrollTop,FF/CH则是documentbodyscrollTop

解释:元素滚动条内的内容高度。

scrollHeight同scrollTop属性一样,只有DOM元素才有,window/document没有。

不同的是scrollHeight是只读,不可设置。

兼容性问题:获取整个文档scrollHeight,IE/FF/CH都可以通过documentdocumentElementscrollHeight或documentbodyscrollHeight获得。

此外还有scrollLeft,scrollWidth,道理是一样的。

这3个是全局函数,最新的IE/FF/CH都支持。

windowscroll(x,y)是让window滚动条滚动到那个x,y坐标。//x是水平坐标,y是垂直坐标。

windowscrollBy(-x,-y)是让window滚动条相对滚动到某个坐标,- 10即相对向左/向上滚动10像素。

windowscrollTo(x,y)和windowscroll(x,y)一样。

以上就是关于jquery 怎样获取元素相对父元素的偏移(距离)说明:父元素有滚动条的!全部的内容,包括:jquery 怎样获取元素相对父元素的偏移(距离)说明:父元素有滚动条的!、jsz中scrollTop,clientTop,offsetTop、js的onscroll、scrollTop、scrollHeight及window.scroll等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9437378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存