JavaScript中offsetLeft属性的用法详解

作者:代码拾荒时间:2026-10-30 19:31:06浏览:103

本文详解JavaScript中offsetLeft属性的用法。该属性只读,用于获取元素相对于最近定位父元素的左边缘距离;若无定位父元素,则返回相对于body的距离。通过包含与不包含定位父元素的两个实例,展示了offsetLeft的具体计算结果与应用场景。

offsetLeft属性基本定义

obj.offsetLeft是一个只读属性,无法直接进行赋值操作。

该属性可用于返回当前元素距离其某个父辈元素左边缘的距离:

  • 若父辈元素中存在定位元素,则返回距离当前元素最近的定位元素边缘的距离。
  • 若父辈元素中不存在定位元素,则返回相对于body左边缘的距离。

实例一:存在定位父元素

实例一:存在定位父元素的情况

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>demo1</title>
<style type="text/css">
*{
 margin: 0px;
 padding: 0px;
}
#main{
 width:300px;
 height:300px;
 background:red;
 position:absolute;
 left:100px;
 top:100px;
}
#box{
 width:200px;
 height:200px;
 background:blue;
 margin:50px; 
 overflow:hidden;
}
#inner{
 width:50px;
 height:50px;
 background:green;
 text-align:center;
 line-height:50px;
 margin:50px;
}
</style>
<script type="text/javascript">
window.onload=function(){
 var inner=document.getElementById("inner");
 document.getElementById("msg").innerHTML = 'offsetLeft='+inner.offsetLeft;
}
</script>
</head>
<body>
    <div id="msg"></div>
<div id="main">main(position:absolute)
 <div id="box">box
 <div id="inner"></div>
 </div>
</div>
</body>
</html>

运行结果如下:

offsetLeft属性基本定义

返回inner元素距离main元素的左侧距离,因为main元素是第一个定位的父辈元素。

实例二:不存在定位父元素

实例二:不存在定位父元素的情况

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>demo2</title>
<style type="text/css">
*{
 margin: 0px;
 padding: 0px;
}
#main{
 width:300px;
 height:300px;
 background:red;
 margin:100px;
}
#box{
 width:200px;
 height:200px;
 background:blue;
 overflow:hidden;
}
#inner{
 width:50px;
 height:50px;
 background:green;
 text-align:center;
 line-height:50px;
 margin:50px;
}
</style>
<script type="text/javascript">
window.onload=function(){
 var inner=document.getElementById("inner");
 document.getElementById("msg").innerHTML = 'offsetLeft='+inner.offsetLeft;
}
</script>
</head>
<body>
    <div id="msg"></div>
<div id="main">
    main
 <div id="box">
     box
 <div id="inner">inner</div>
 </div>
</div>
</body>
</html>

运行结果如下:

offsetLeft属性基本定义

返回inner元素距离body元素左侧的尺寸。

到此这篇关于js的offsetLeft属性用法小结的文章就介绍到这了,更多相关js offsetLeft属性内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

作者最新文章