JavaScript中style.left与offsetLeft的使用及区别详解


Posted in Javascript onJune 08, 2016

如果父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的位置。

// 这个函数是对 一个无穷分类的 下拉框的操作,页面开始只有一个下拉框,当选中下拉框一个值后,
动态生成一个select, select的项是子分类,同时要使子分类的select框后移 20px;

function itemtree_cats_change ( selectObj )

JavaScript中style.left与offsetLeft的区别说明如下所示:

今天在制作焦点轮播图的时候,遇到一个问题,在使用style.left获取图片的位置时,怎么也获取不到。换用offsetLeft就能够成功获取到了。虽然实现了我想要的效果,但是还是不甘心啊,没有找到原因,心里就是怪怪的,于是我翻开JavaScript高级程序设计,将style.left和offsetLeft有关的知识点都看了一下,做了如下比较。

(一)、对于style.left类属性,JavaScript高级程序是这样描述的:

任何支持style特性的HTML元素在JavaScript中都有一个对应的style属性。这个style对象是CSSStyleDeclaration的实例,包含着通过HTML的style特性指定的所有样式信息,但不包含与外部样式表或嵌入样式表经层叠而来的样式(关键就在这句话!也就是说只有设置为行内样式的style属性才能被获取)。在style特性中指定的任何CSS属性都将表现为这个style对象的相应属性。

(二)、对于offsetLeft累属性:

offsetLeft:元素的左外边框至包含元素的左内边框之间的像素距离。

offsetTop:元素的上外边框至包含元素的上内边框之间的像素距离。

通过看书和今天遇到的问题,对style.left和offsetLeft做如下总结

相同点

1、style.left与offsetLeft都是相对于其父元素的值。

不同点

1、style.left返回的是字符串,带有px;offsetLeft返回的是数值。

2、style.left时可以读取的也是可以配置的;offsetLeft只能读取不能配置。

Javascript 相关文章推荐
学习YUI.Ext 第七天--关于View&JSONView
Mar 10 Javascript
JS动态给对象添加事件的简单方法
Jul 19 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
Dec 12 Javascript
jQuery实现Select下拉列表进行状态选择功能
Mar 30 jQuery
XMLHttpRequest对象_Ajax异步请求重点(推荐)
Sep 28 Javascript
React Native 通告消息竖向轮播组件的封装
Aug 25 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
Oct 26 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
Jan 10 Javascript
Js经典案例的实例代码
May 10 Javascript
node.js中express模块创建服务器和http模块客户端发请求
Mar 06 Javascript
js微信分享接口调用详解
Jul 23 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 #Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
Jun 08 #Javascript
JS与Ajax Get和Post在使用上的区别实例详解
Jun 08 #Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 #Javascript
原生 JS Ajax,GET和POST 请求实例代码
Jun 08 #Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
Jun 08 #Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
Jun 08 #Javascript
You might like
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
PHP学习之字符串比较和查找
2011/04/17 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
python读取mysql数据绘制条形图
2020/03/25 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
机械个人求职信范文
2014/01/24 职场文书
大明湖导游词
2015/02/03 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
成事在人观后感
2015/06/16 职场文书
观后感格式
2015/06/19 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
如何利用golang运用mysql数据库
2022/03/13 Golang
Python中npy和mat文件的保存与读取
2022/04/24 Python
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技