网页元素的相对位置,指该元素左上角相对于浏览器窗口左上角的坐标。
有了绝对位置以后,获得相对位置就很容易了,只要将绝对坐标减去页面的滚动条滚动的距离就可以了。滚动条滚动的垂直距离,是document对象的scrollTop属性;滚动条滚动的水平距离是document对象的scrollLeft属性。
function getElementViewLeft(element) { | |
var actualLeft = element.offsetLeft; | |
var current = element.offsetParent; | |
while (current !== null) { | |
actualLeft += current.offsetLeft; | |
current = current.offsetParent; | |
} | |
if (document.compatMode == "BackCompat"){ | |
var elementScrollLeft=document.body.scrollLeft; | |
} else { | |
var elementScrollLeft=document.documentElement.scrollLeft; | |
} | |
return actualLeft-elementScrollLeft; | |
} |
function getElementViewTop(element){ | |
var actualTop = element.offsetTop; | |
var current = element.offsetParent; | |
while (current !== null){ | |
actualTop += current. offsetTop; | |
current = current.offsetParent; | |
} | |
if (document.compatMode == "BackCompat"){ | |
var elementScrollTop=document.body.scrollTop; | |
} else { | |
var elementScrollTop=document.documentElement.scrollTop; | |
} | |
return actualTop-elementScrollTop; | |
} |