详解 javascript中offsetleft属性的用法


Posted in Javascript onNovember 11, 2015

此属性可以返回当前元素距离某个父辈元素左边缘的距离,当然这个父辈元素也是有讲究的。

(1).如果父辈元素中有定位的元素,那么就返回距离当前元素最近的定位元素边缘的距离。
(2).如果父辈元素中没有定位元素,那么就返回相对于body左边缘距离。

语法结构:

obj.offsetleft

特别说明:此属性是只读的,不能够赋值。

代码实例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</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");
 inner.innerHTML=inner.offsetLeft;
}
</script>
</head>
<body>
<div id="main">
 <div id="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>蚂蚁部落</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");
 inner.innerHTML=inner.offsetLeft;
}
</script>
</head>
<body>
<div id="main">
 <div id="box">
 <div id="inner"></div>
 </div>
</div>
</body>
</html>

上面的代码返回inner元素距离body元素左侧的尺寸。

此属性具有一定的兼容性问题,具体可以参阅offsetleft兼容性简单介绍一章节。

ps:js中的offsetLeft属性具体有什么作用?

可以判断一个物体的跟document的左边距离,也就是浏览器左边缘。比如你写一个div 获取这个div之后alert(你的div.offsetLeft)就可以看到他现在距离浏览器左边的距离。当然你也可以用他给对象赋值,offset不单单只有Left 还有offsetTop offsetWidth offsetHeight 都是JS里很有用的属性。

Javascript 相关文章推荐
理解Javascript闭包
Nov 01 Javascript
浅析JavaScript中的CSS属性及命名规范
Nov 28 Javascript
鼠标移到图片上变大显示而不是放大镜效果
Jun 15 Javascript
JS实现六边形3D拖拽翻转效果的方法
Sep 11 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
Dec 13 Javascript
JavaScript屏蔽Backspace键的实现代码
Nov 02 Javascript
Vue 拦截器对token过期处理方法
Jan 23 Javascript
JS实现图片旋转动画效果封装与使用示例
Jul 09 Javascript
layui结合form,table的全选、反选v1.0示例讲解
Aug 15 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
Jun 25 Javascript
jQuery实现带进度条的轮播图
Sep 13 jQuery
jquery事件的ready()方法使用详解
Nov 11 #Javascript
浅谈使用MVC模式进行JavaScript程序开发
Nov 10 #Javascript
每天一篇javascript学习小结(基础知识)
Nov 10 #Javascript
jQuery+CSS3实现3D立方体旋转效果
Nov 10 #Javascript
JavaScript中利用各种循环进行遍历的方式总结
Nov 10 #Javascript
简单学习JavaScript中的for语句循环结构
Nov 10 #Javascript
js密码强度校验
Nov 10 #Javascript
You might like
PHP 常见郁闷问题答解
2006/11/25 PHP
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
Python中的 enum 模块源码详析
2019/01/09 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
对于Python深浅拷贝的理解
2019/07/29 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
容易被忽略的Python内置类型
2020/09/03 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
教学实验楼管理制度
2014/02/01 职场文书
新任教师自我鉴定
2014/02/24 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
幼师自荐信范文
2015/03/06 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
MySQL 如何设计统计数据表
2021/06/15 MySQL
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers