猿问

使用原生 js 如何获取元素真实高度包括(margin)

使用原生 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')

......


拉风的咖菲猫
浏览 9259回答 1
1回答

陪伴而非守候

网页可见区域宽: document.documentElement.clientWidth;网页可见区域高: document.documentElement.clientHeight;&nbsp;&nbsp;网页正文全文宽: document.documentElement.scrollWidth;网页正文全文高: document.documentElement.scrollHeight;网页被卷去的高(ff):document.body.scrollTop;&nbsp;网页被卷去的高(ie): document.documentElement.scrollTop;&nbsp;网页被卷去的左:document.body.scrollLeft;&nbsp;网页正文部分上:window.screenTop;&nbsp;网页正文部分左:window.screenLeft;&nbsp;某个元素的宽度:obj.offsetWidth;某个元素的高度:obj.offsetHeight;某个元素的上边界到body最顶部的距离:obj.offsetTop;(在元素的包含元素不含滚动条的情况下)某个元素的左边界到body最左边的距离:obj.offsetLeft;(在元素的包含元素不含滚动条的情况下)返回当前元素的上边界到它的包含元素的上边界的偏移量:obj.offsetTop(在元素的包含元素含滚动条的情况下)返回当前元素的左边界到它的包含元素的左边界的偏移量:obj.offsetLeft(在元素的包含元素含滚动条的情况下)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答