- 62
- 0
为了获取元素据body的高度偏移量,写了下面这个函数:
function getTop(ele){
var top=0;//设定初始值
function getEleTop(ele){
top+=ele.offsetTop; //top储存ele的offsetTop
if(ele.tagName.toLowerCase()=='body'){ //如果ele现在是body,就返回top值
return top;
}else{
getEleTop(ele.offsetParent); //否则,就继续调用这个函数,获得ele的定位父元素的offsetTop
}
}
return getEleTop(ele);
}
外层getTop()包裹内层getEleTop(),我想用来隐藏top变量,以免暴露出去。
内层getEleTop(),我本意想用top来储存ele的offsetTop,然后用top叠加ele的定位父元素(假设为faEle)相对于其定位父元素(假设为paEle)的offsetTop。直到叠加到body为止。
这样就可以获得ele相对于body的高度偏移量。
最后内层函数返回top。
我用外层函数在return的时候,调用内层的getEleTop(ele),最后并没有得到top的值。
经过一番调试,我发现是内层函数没用return top。所以外层函数返回的是undefied。
如果外层函数直接是 return top,就可以准确返回。
但是为什么内层函数没有返回top呢?
希望各位大神讲解一下!谢谢!
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
