详解 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压缩混淆工具
May 16 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
May 18 Javascript
模拟select的代码
Oct 19 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
Dec 02 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
Mar 31 Javascript
jQuery检测返回值的数据类型
Jul 13 Javascript
如何利用Promises编写更优雅的JavaScript代码
May 17 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
canvas绘制一个常用的emoji表情
Mar 30 Javascript
微信小程序实现左右列表联动
May 19 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
用几道面试题来看JavaScript执行机制
Apr 30 Javascript
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
php4的session功能评述(三)
2006/10/09 PHP
php header Content-Type类型小结
2011/07/03 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
python文件和文件夹复制函数
2020/02/07 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
测绘工程个人的自我评价
2013/11/10 职场文书
教师求职信范文分享
2013/12/27 职场文书
大学生军训自我鉴定
2014/02/12 职场文书
难忘的一天教学反思
2014/04/30 职场文书
党校党性分析材料
2014/12/19 职场文书
作文评语怎么写
2014/12/25 职场文书
财务个人年度总结范文
2015/02/26 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA
nginx 配置缓存
2022/05/11 Servers