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 相关文章推荐
javascript 原型模式实现OOP的再研究
Apr 09 Javascript
Javascript var变量隐式声明方法
Oct 19 Javascript
初识Node.js
Sep 03 Javascript
jQuery中queue()方法用法实例
Dec 29 Javascript
js编写的treeview使用方法
Nov 11 Javascript
bootstrap datetimepicker2.3.11时间插件使用
Nov 19 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
Jan 17 Javascript
JS模拟实现哈希表及应用详解
May 04 Javascript
JavaScript引用类型Function实例详解
Aug 09 Javascript
在Vue组件中获取全局的点击事件方法
Sep 06 Javascript
微信小程序实现的picker多级联动功能示例
May 23 Javascript
基于JavaScript实现简单的轮播图
Mar 03 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
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
python实现apahce网站日志分析示例
2014/04/02 Python
pandas的排序和排名的具体使用
2019/07/31 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
应届生体育教师自荐信
2013/10/03 职场文书
高中班长自我鉴定
2013/12/20 职场文书
庆七一活动方案
2014/01/25 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
演讲稿的写法
2014/05/19 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
Redis IP地址的绑定的实现
2021/05/08 Redis
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏