开发中用到了,就写了一个计算元素到窗口的边距用的函数,记录一下。
第一次用递归,想想还真是有点小激动呢(逃
function getWindowOffset(element, direction) {
var offset;
switch (direction.toLowerCase()){
case 'top':
offset = element.offsetTop;
if (element.offsetParent != null) {
offset += getWindowOffset(element.offsetParent, 'top');
}
break;
case 'left':
offset = element.offsetLeft;
if (element.offsetParent != null) {
offset += getWindowOffset(element.offsetParent, 'left');
}
break;
case 'right':
offset = element.offsetRight;
if (element.offsetParent != null) {
offset += getWindowOffset(element.offsetParent, 'right');
}
break;
case 'bottom':
offset = element.offsetBottom;
if (element.offsetParent != null) {
offset += getWindowOffset(element.offsetParent, 'bottom');
}
break;
}
return offset;
}