原生js怎么获取一个div到浏览器边上的距离?
obj.offsetLeft试了不行,他是获取到父级的距离不是到浏览器边上的距离!!
首先 @穗乃果 提供的答案绝对正确,而且也兼容。
var pos=obj.getBoundingClientReact();
pos.left
pos.right
pos.top
pos.bottom
如果不想用系统提供的API,而且你心里还感觉它不兼容。
可以自己封装:
只封装了 left,top, 仅供参考。
function getPosition(obj){
var l=0;
var t=0;
while(obj){
l+=obj.offsetLeft;
t+=obj.offsetTop;
obj=obj.offsetParent;
}
return {left:l, top:t};
}
使用:
var pos=getPosition(document.querySelector('#div1'));
console.log(pos.left, pos.top);
13 回答12.7k 阅读
7 回答1.8k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.1k 阅读✓ 已解决
el.getBoundingClientRect()