js getBoundingClientRect

getBoundingClientRect返回一个矩形对象,分别包括 top right bottom left 四个属性。表示元素各边与页面上边与左边的距离。
var box = document.getElementById(‘#box’);
alert(box.getBoundingClientRect().top) //元素上边距离页面上边的距离
alert(box.getBoundingClientRect().left) //元素左边距离页面左边的距离
alert(box.getBoundingClientRect().right) //元素右边距离页面左边的距离
alert(box.getBoundingClientRect().left) //元素左边距离页面左边的距离

IE中 默认坐标从(2,2)开始计算 导致距离比其他浏览器多出2个像素
我们需要做个兼容,巧妙之处在于,这里做兼容,不需要判断浏览器是IE还是非IE
只需要:
function GetRect(element){
var rect = element.getBoundingClientRect();
var top = document.documentElement.clientTop;
var left = document.documentElement.clientLeft;
return {
top:rect.top - top,
right:rect.right - left,
bottom:rect.bottom - top,
left:rect.left - left
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值