jsz中scrollTop,clientTop,offsetTop

jsz中scrollTop,clientTop,offsetTop,第1张

先来一张名气很大的图

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

发现主要分为几部分:

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

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

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

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

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

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

clientWidth:可视区域宽度

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

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

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

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

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

offsetLeft:同offsetTop

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

(1)domstylewidth/height 获取dom元素内联样式中设定的width,height

(2)domcurrentStylewidth/height 获取dom元素渲染后的width,height,只支持IE

(3)windowgetComputedStyle(dom)width/height 浏览器渲染后的元素宽,兼容性更好

(4)domgetBoundingClientRect()width/height/left/top/right/ 计算一个元素的绝对位置(相对于视窗左上角),它能拿到元素的left、top、right、bottom、width、height

ElementgetBoundingClientRect() - Web API 接口参考 | MDN

js中获取某个元素到浏览器最左和最右的距离的程序代码是:

<!doctype ><><head><meta charset=UTF-8><style>

body{margin: 0;padding: 0;}

mdiv{width: 100px;height: 100px;background-color: red;}

</style></head><body><div class="page_speeder_585337571"></div><div></div><script src=jqueryjs></script> //自行下载<script>//原生//获取div距离顶部的距离

var mTop = documentgetElementsByClassName('banner')[0]offsetTop;

//减去滚动条的高度var sTop = documentbodyscrollTop;var result = mTop - sTop;consolelog(result);//Jquery

mTop = $('banner')[0]offsetTop;

sTop = $(window)scrollTop;

result = mTop - sTop;

consolelog(result);

</script></body>

简单说 windowparent是获得 父窗口的window对象,

windowtop是获得 最顶层的window对象(多frame嵌套)

所以 对于你这个页面 windowparent windowtop都可以实现

1获取dom元素

2dom元素的属性

3获取元素到页面顶部的距离,原生js只能获取相对于父级的top值,所以需要递归获取offsetParent,直到最外层

4滑动动画

5浏览器滑动无效?兼容所有浏览器设置scrollTop的方法:

以上就是关于jsz中scrollTop,clientTop,offsetTop全部的内容,包括:jsz中scrollTop,clientTop,offsetTop、Js如何获取某Dom元素的宽高、js中如何获取某个元素到浏览器最左和最右的距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存