谈谈对offsetleft兼容性的理解


Posted in Javascript onNovember 11, 2015

关于此属性的基本用法可以参阅offsetleft属性用法详解一章节。

此属性具有一定的兼容性问题,那就是在IE7浏览器中,它的返回值是想对于最近的父辈元素的左侧的距离。

<!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>

上面的代码在其他浏览器中返回值是100,但是在IE7浏览器中返回值是50。

至于IE6没有测试,感兴趣的大家可以做一下测试。

下面抽点空给大家介绍offsetLeft与style.left的区别

offsetLeft 获取的是相对于父对象的左边距

left 获取或设置相对于 具有定位属性(position定义为relative)的父对象 的左边距

如果父div的position定义为relative,子div的position定义为absolute,那么子div的style.left的值是相对于父div的值,
这同offsetLeft是相同的,区别在于:

1. style.left 返回的是字符串,如28px,offsetLeft返回的是数值28,如果需要对取得的值进行计算,
还用offsetLeft比较方便。

2. style.left是读写的,offsetLeft是只读的,所以要改变div的位置,只能修改style.left。

3. style.left的值需要事先定义,否则取到的值为空。而且必须要定义在html里,我做过试验,如果定义在
css里,style.left的值仍然 为空,这就是我刚开始碰到的问题,总是取不到style.left的值。

offsetLeft则仍然能够取到,无需事先定义div的位置。

Javascript 相关文章推荐
拖动一个HTML元素
Dec 22 Javascript
javascript使用正则获取url上的某个参数
Sep 04 Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 Javascript
简单实现JS对dom操作封装
Dec 02 Javascript
基于javascript实现彩票随机数生成(升级版)
Apr 17 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
May 25 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
深入研究React中setState源码
Nov 17 Javascript
安装vue-cli的简易过程
May 22 Javascript
js实现倒计时器自定义时间和暂停
Feb 25 Javascript
微信小程序class封装http代码实例
Aug 24 Javascript
如何通过JS实现日历简单算法
Oct 14 Javascript
详解 javascript中offsetleft属性的用法
Nov 11 #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
You might like
php木马攻击防御之道
2008/03/24 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
常用PHP封装分页工具类
2017/01/14 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
vue中使用vee-validator完成表单校验方案
2019/11/01 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
python多重继承实例
2014/10/11 Python
实例讲解Python爬取网页数据
2018/07/08 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
泰国网上购物:Shopee泰国
2018/09/14 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
夜大毕业生自我评价分享
2013/11/10 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
实习评语大全
2014/04/26 职场文书
民事答辩状范本
2015/05/21 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python
vue router 动态路由清除方式
2022/05/25 Vue.js