这篇文章给大家介绍使用javascript怎么获取元素的计算样式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>背景强>
使用css控制页面有4种方式,分别为行内样式(内联样式),内嵌式、链接式,导入式。
- <李>
行内样式(内联样式)即写在html标签中属的风格性中,如& lt; div祝辞& lt;/div>
李> <李>内嵌样式即写在风格标签中,例如& lt;风格类型=拔谋?css"在div{宽度:100 px;身高:100 px} & lt;/style>
李> <李>链接式即为用链接标签引入css文件,例如& lt;链接href=https://www.yisu.com/zixun/皌est.css rel=巴獠縩ofollow”type=" text/css " rel="样式表"/>
李> <李>导入式即为用进口引入css文件,例如@ import url (“test.css")
李>如果想用javascript获取一个元素的样式信息,首先想到的应该是元素的风格属性。但是元素的风格属性仅仅代表了元素的内联样式,如果一个元素的部分样式信息写在内联样式中,一部分写在外部的css文件中,通过风格属性是不能获取到元素的完整样式信息的,因此,需要使用元素的计算样式才获取元素的样式信息。
<强>获取计算样式强>
元素的风格下的属性,默认为空字符串;
获取计算后的样式(非行间样式):
getComputedStyle(元素)。属性
获取到的结果为带单位的字符串,如:100 px;
写法:getComputedStyle(盒)。高度;
<强>获取宽高(尺寸)
强>
- <李>
避署。clientHeight/宽度支持填充,不包含边框,元素可视区宽度;
李> <李>避署。offsetWidth/高包含填充、边境
,以上2个,如果设置一个固定值,就以固定值为依据显示,不会以被内容撑开显示;
ele.scrollWidth/高度被内容撑开的高度(不包含边框),
,无论是否设置固定样式,都以被内容撑开我显示结果;
边框尺寸
李>- <李>
clientLeft/clientTop边框尺寸
李> <李>getComputedStyle (box3)。borderTopWidth边框尺寸
李>以上获取到的都是不带单位的数字,并且范围为可视区;
<>强绝对位置
强>
<强>元素距离
强>
- <李>
offsetParent 定位父级,没有定位父级走身体;
offsetLeft 当前元素(左外边框)到定位父级的(左内边框)距离,
offsetTop 当前元素(上外边框)到定位父级的(上内边框)距离,
,获取的是不带单位的数字。
如果要使用上面的属性,一定要做到以下几点:
1,子集有绝对定位;
2,定位父级也一定要有定位;
3,自己和父级都要有宽高(触发haslayout,变焦:1);
- <李>
getBoundingClientRect ()
李>当前元素到页面可视区的尺寸,距离,
注意:
是跟滚动条走的。
也就是拖动滚动条值会变;
包含:宽/高/左/右/上/下/x/y
写法:box2。getBoundingClientRect ();
使用定位距离做一个小例子:
, let timer =,空; ,box.onclick =function () {=,,timer  setInterval()=祝辞{ ,box.style.left=box.offsetLeft +, 1, + & # 39; px # 39;; ,},16.7) 以前,}>在此了解以下渲染帧:
渲染帧是指浏览器一次完整绘制过程,帧之间的时间间隔是DOM视图更新的最小间隔。由于主流的屏幕刷新率都在60 hz,因此渲染一帧的事件就必须控制在16.7毫秒内才能保证不掉帧。也就是说每一次渲染都要在16.7毫秒内页面才够流畅不会有卡顿感。
<强>封装绝对位置强>
//,使用边框,定位位置 ,class Tools  { 位置(避署){大敌; ,let left =, 0; ,let top =, 0; ,let obj =,避署; ,而(obj) { ,//t =,当前元素的外边距,+,当前元素边框 +=,left obj.offsetLeft +, obj.clientLeft; +=,top obj.offsetTop +, obj.clientTop; ,//重新设置Obj是谁,让Obj变为当前的定位父级=,,obj  obj.offsetParent;,//box3 →, box2 →, box1 →, ,} -=,left ele.clientLeft;,//多加一次box3的边界,所以要减去 -=,top ele.clientTop; ,return { ,离开了, ,最高 ,} ,} ,} ,let t1 =, new 工具; 直,console.log (t1.position (box3)上),使用javascript怎么获取元素的计算样式