obj.offsetleft, 此属性是只读的,不能够赋值

此属性可以返回当前元素距离某个父辈元素左边缘的距离:

  1. 如果父辈元素中有定位的元素,那么就返回距离当前元素最近的定位元素边缘的距离
  2. 如果父辈元素中没有定位元素,那么就返回相对于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>

结果
在这里插入图片描述
返回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>

结果:
在这里插入图片描述
返回inner元素距离body元素左侧的尺寸。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐