使用原生 js 如何获取元素真实高度包括(margin)?本人写了一个很愚蠢的方法(只能分别获取 width、marginTop、paddingTop等, 这样获取效率太低,有没方法可以一次获取得到呢?)html:<div class="container">
<p class="text">text</p></div>css:.text { margin: 5px 10px 15px 20px; padding: 25px 10px 5px 3px;
}js:var textNode = document.querySelector('.text')
方法1:
// 只能分别获取 width、marginTop、paddingTop等, 这样获取效率太低,有没方法可以一次获取得到呢?function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}
else{
return document.defaultView.getComputedStyle(obj,null)[attr];
}
}var width = getStyle(textNode, 'width')var marginTop = getStyle(textNode, 'marginTop')
......
1 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
网页可见区域宽: document.documentElement.clientWidth;
网页可见区域高: document.documentElement.clientHeight;
网页正文全文宽: document.documentElement.scrollWidth;
网页正文全文高: document.documentElement.scrollHeight;
网页被卷去的高(ff):document.body.scrollTop;
网页被卷去的高(ie): document.documentElement.scrollTop;
网页被卷去的左:document.body.scrollLeft;
网页正文部分上:window.screenTop;
网页正文部分左:window.screenLeft;
某个元素的宽度:obj.offsetWidth;
某个元素的高度:obj.offsetHeight;
某个元素的上边界到body最顶部的距离:obj.offsetTop;(在元素的包含元素不含滚动条的情况下)
某个元素的左边界到body最左边的距离:obj.offsetLeft;(在元素的包含元素不含滚动条的情况下)
返回当前元素的上边界到它的包含元素的上边界的偏移量:obj.offsetTop(在元素的包含元素含滚动条的情况下)
返回当前元素的左边界到它的包含元素的左边界的偏移量:obj.offsetLeft(在元素的包含元素含滚动条的情况下)
添加回答
举报
0/150
提交
取消