java topleft_原生js获取left值和top值

在用js做动态效果时,通常需要获取元素绝对定位中的left和top属性值。比如做一个碰撞广告,就要不停的获取元素的top和left属性值。

需要注意的事:取值的元素必须要设置position:absolute绝对定位属性,才能取的到left值。

第一种方法,比较简单,就是直接通过obj.style.left和obj.style.top,但是有局限性,这种获取的方法只能获取到行内样式的left和top的属性值,不能获取到style标签和link 外部引用的left和top属性值。

第二种方法 只读,可以获取所有style样式,存在兼容性问题,在标准浏览器中可以通过window.getComputedStyle(对象,null).left方法来获取元素的left和top的属性值。而在IE浏览器上则是采用obj.currentStyle.left方法来获取属性值。

第三种方法,使用obj.offsetLeft来获取对象的left属性值,用obj.offsetTop来获取对象的top属性值。

Document

*{

margin: 0;padding: 0;

}

#boxs{

width: 200px;height: 200px;border: 1px solid red;position: absolute;top: 0;left:10px;

}

这是一个盒子
这是第二个

// 1,第一种方法 obj.style.left 只能获取行内样式的left值

var boxs = document.getElementById('boxs');

var ctns = document.getElementById('ctns');

var a = boxs.style.left;

console.log(a);//值是空,没有

var a2 = ctns.style.left;

console.log(a2);//值是20px

// 2,第二种方法,获取所有类型样式值,要写兼容

//支持w3c规范的浏览器

var b2= window.getComputedStyle(boxs).left;

console.log(b2);//10px

//兼容IE9以下写法

var b3 = window.getComputedStyle? window.getComputedStyle(boxs).left : boxs.currentStyle.left;

console.log(b3);//10px

// 3,第三种方法 使用obj.offsetLeft

var c = boxs.offsetLeft;

var c2 = ctns.offsetLeft;

console.log(c);//值是10

console.log(c2);//值是20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值