在 JavaScript 中,使用元素的 getBoundingClientRect() 方法可以获取元素相对于浏览器视窗的位置。该方法返回一个 Object 对象,该对象有 6 个属性:top、left、right、bottom、width、height:
【例 1】获取元素的绝对位置。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>获取元素的绝对位置</title>
<style>
#div1{width:100px;height:100px;border:3px solid red;}
#div2{width:70px;height:70px;border:3px solid blue;position:relative;}
#div3{width:50px;height:50px;border:3px solid green;position:absolute;
left:20px;top:10px;}
</style>
</head>
<body>
<div id="div1">
<div id="div2">
<div id="div3"></div>
</div>
</div>
<script>
var div3 = document.getElementById('div3');
alert("div3的left属性值为:"+div3.getBoundingClientRect().left+"px,right属性值为:"+
div3.getBoundingClientRect().right+"px,top属性值为:"+
div3.getBoundingClientRect().top+"px,bottom属性值为:"+
div3.getBoundingClientRect().bottom+"px,width属性值为:"+
div3.getBoundingClientRect().width+"px,height属性值为:"+
div3.getBoundingClientRect().height+"px");
</script>
</body>
</html>
上述代码在 Chrome 浏览器中的运行结果如图 1 所示。
由上图可知:
需要注意的是,使用 getBoundingClientRect() 方法得到的 top、left、right、bottom 值会随可视窗口的变化而变化。