为什么还要输入 current = current.offserParent ?
真正的宽度已经由actualLeft +=current.offsetLeft计算出来了,下面那句话不是多此一举吗
真正的宽度已经由actualLeft +=current.offsetLeft计算出来了,下面那句话不是多此一举吗
2015-04-26
<script type="text/javascript">
var getElmentTop=function(element){
var actualTop=element.offsetTop;//初始化,在element没有定位父元素(或解释为定位父元素为document)的时候,实际的高actualTop=element.offsetTop
var current=element.offsetParent;//定义element的定位父元素current,element.offset就是element相对于current的偏移(element上边界到current上边界的距离)
while(current != null){ //在element有定位父元素的时候进入这个循环
actualTop+=current.offsetTop;//实际的高等于element.offsetTop+current.offsetTop(这是element的定位父元素不再有定位父元素的情况,如果current还有定位父元素,实际高就应该是element.offsetTop+current.offsetTop+current.offsetParent.offsetTop+....)
current=current.offsetParent;//这句话就是用来实现父元素还有定位父元素的情况(element.offsetTop+current.offsetTop+current.offsetParent.offsetTop+....),current=current.offsetParent,如果有父元素,current!=null,继续循环,如果没有父元素,也就是current已经找到document了,那current=null跳出循环
}
return actualTop;//函数返回实际距离页面顶部距离
}
</script>
举报