jQuery提供了一个方法,可以获取dom元素距离浏览器左边和顶部的距离:
dom.offset().left dom.offset().top
但是js的 offsetLeft 和 offsetTop 只能获取相对定位的父元素的距离,并不能直接获取距离浏览器的距离,所以,要循环遍历,依次从内到外加上即可:
function getOffsetLeft(dom){
let offsetLeft = 0;
do {
offsetLeft += dom.offsetLeft
dom = dom.parentNode
} while (dom.parentNode)
return offsetLeft
}使用方法:
const offsetLeft = getOffsetLeft(document.querySelector('.line'))