详解 javascript中offsetleft属性的用法(转)
详解 javascript中offsetleft属性的用法
转载 2015-11-11 投稿:mrr
我要评论
此属性可以返回当前元素距离某个父辈元素左边缘的距离,当然这个父辈元素也是有讲究的。
(1).如果父辈元素中有定位的元素,那么就返回距离当前元素最近的定位元素边缘的距离。
(2).如果父辈元素中没有定位元素,那么就返回相对于body左边缘距离。
语法结构:
obj.offsetleft
特别说明:此属性是只读的,不能够赋值。
代码实例:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<!DOCTYPE html><html><head><meta charset="utf-8"><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元素是第一个定位父辈元素。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
<!DOCTYPE html><html><head><meta charset="utf-8"><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里很有用的属性。
谈谈对offsetleft兼容性的理解
转载 2015-11-11 投稿:mrr
我要评论

关于此属性的基本用法可以参阅offsetleft属性用法详解一章节。
此属性具有一定的兼容性问题,那就是在IE7浏览器中,它的返回值是想对于最近的父辈元素的左侧的距离。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<!DOCTYPE html><html><head><meta charset="utf-8"><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中offsetleft属性的用法(转)的更多相关文章
- (转载)详解Javascript中prototype属性(推荐)
在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不 ...
- 详解Javascript中prototype属性(推荐)
在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不 ...
- 详解Javascript中prototype属性
转自:https://www.jb51.net/article/91826.htm 在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例.但是在Jav ...
- 详解javascript中的this对象
详解javascript中的this对象 前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的 ...
- 【转】详解JavaScript中的this
ref:http://blog.jobbole.com/39305/ 来源:foocoder 详解JavaScript中的this JavaScript中的this总是让人迷惑,应该是js众所周知的坑 ...
- 详解JavaScript中的原型
前言 原型.原型链应该是被大多数前端er说烂的词,但是应该还有很多人不能完整的解释这两个内容,当然也包括我自己. 最早一篇原型链文章写于2019年07月,那个时候也是费了老大劲才理解到了七八成,到现在 ...
- 详解JavaScript中的Object对象
Object是在javascript中一个被我们经常使用的类型,而且JS中的所有对象都是继承自Object对象的.虽说我们平时只是简单地使用了Object对象来存储数据,并没有使用到太多其他功能,但是 ...
- sort方法实际应用详解---javascript中对一个对象数组按照对象某个属性进行排序
转载: 查看原文 在javascript中,对象和数组是两种不同的类型,这和php中的数组概念不同.在javascript中,也有一些精妙的算法,用来对一些对象进行排序.我在面试迅雷的时候,也拿到一道 ...
- 【转】详解JavaScript中的异常处理方法
有三种类型的编程错误:(1)语法错误和(2)运行时错误(3)逻辑错误:语法错误: 语法错误,也被称为解析错误,在编译时进行传统的编程语言,并出现在JavaScript解释时. 例如,下面一行将导致一个 ...
随机推荐
- simple -- abstract
<?php abstract class Operation { protected $_NumberA = 0; protected $_NumberB = 0; protected $_Re ...
- 继承、多态——成员变量、成员函数、构造函数(this、super)
继承 1.继承使用原因: 1.提高了代码的复用性 2.让类与类之间产生了关系,有了这个关系,才有了多态的特性 2.继承注意事项: 千万不要为了获取其他类的功能,简化代码而继承. 必须是类与类之间有所属 ...
- [原创]java WEB学习笔记16:JSP指令(page,include),JSP标签(forwar,include,param)
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Qt中 QTableWidget用法总结
转自--> http://edsionte.com/techblog/archives/3014 http://hi.baidu.com/fightiger/item/693aaa0f0f87d ...
- ubuntu commands mysql
use table; //选择某个表 show tables; //展现有几个表 select * from table; //显示表内容
- Quota Management and Enforcement
Neutron API中大多的resource都需要quota limits. Neutron API暴露出一个extension 来管理quota,Quota limits are enforced ...
- 仿新浪游戏频道js多栏目全屏下拉菜单导航条
仿新浪游戏频道js多栏目全屏下拉菜单导航条,新浪,游戏频道,js组件,多栏目,全屏下拉,下拉菜单,导航条.代码下载地址:http://www.huiyi8.com/sc/26765.html更多请访问 ...
- php中session的配置
在 php.ini 中搜 session.save_path 查看session文件保存的目录;
- MVC中ajax调用Controller的方法
1. ajax代码: $.ajax({ async: false, cache: false, type: 'POST', contentType: "application/json&qu ...
- windows 安装 pytorch
之前都在服务器上跑pytorch,近来发现新版本可在windows上跑了,甚是开心. 环境: windows7 python3 无CPU 步骤: 1. 确保确保python版本在3.5.3/3.6. ...