要获得元素偏移量,我使用:
function(el) {
if(el && el.parentNode) {
var x = 0;
var y = 0;
while(el) {
x += el.offsetLeft;
y += el.offsetTop;
el = el.offsetParent;
}
return {x: x, y: y};
}
return null;
}
并获得它的滚动偏移量,我使用:
function(el) {
if(el && el.parentNode) {
var x = 0;
var y = 0;
while(el) {
if(el && el.parentNode) {
x += el.scrollLeft;
y += el.scrollTop;
el = el.parentNode;
} else {
el = null;
}
}
return {x: x, y: y};
}
return null;
}
问题是我不知道如何将这两个函数合并在一起,所以我可以获得一个元素偏移量,包括在页面上完成的任何滚动。在设置元素位置时,我通常只需要引用这两个函数,但似乎只在一个函数中获取总偏移量是有意义的。我怎样才能做到这一点?在一个函数中完成这一切是否是一个好主意,或者是否有特定的用例在没有滚动的情况下获得偏移量是个好主意?