js获取元素宽高

2017-07-09  本文已影响0人  hui_mamba

以下面的demo为例,来展示js是如何获取一个元素的宽高的:

<style>
  div {
    width: 100px;
    height: 100px;
    padding: 50px;
    margin: 50px;
    border:50px solid;
  }
</style>
<div id="div"></div>
<script>
    var d = document.querySelector('#div');
</script>

1. window.getComputedStyle()、element.currentStyle

var ds = getComputedStyle(d);
ds.width;     //100px;
d.currentStyle.width;  //100px, 

2. offsetHeight、offsetWidth、offsetTop、offsetLeft、officeParent

d.offsetWidth;  // 300 (number)

3. clientWidth、clientHeight

d.clientWidth; //      200 为padding-box的宽高
document.documentElement.clientHeight; // 为视口的高度
document.body.clientHeight;   //  300 为body的高度
document.documentElement.offsetHeight  //400 为html的高度

4. scrollHeight、 scrollWidth、 scrollTop、 scrollLeft

5. getBoundingClientRect()

这个方法返回一个矩形对象,包含6个属性:left、right、top、bottom、width、height。这些属性给出了元素在页面中相对于视口的位置。

var rect = d.getBoundingClientRect();
rect.left;    //50
rect.right;    //350
rect.width;    //300
rect.top;    //50
rect.bottom;    //350
rect.height;    //300
上一篇 下一篇

猜你喜欢

热点阅读