如果没有提供parentId参数,则计算相对于给定element的最顶层容器的偏移量
特别需要注意的是,这里所指的父级容器,是指最近的一个有定位的元素,意即设置了position属性为absolute或者relative的123456789101112131415161718192021function getOffsetXY(elementId, parentId){ var element = document.getElementById(elementId); var element_X = element.offsetLeft; var element_Y = element.offsetTop; while (true) { if ((!element.offsetParent) || (!element.offsetParent.style) || (!!parentId && element.offsetParent.id == parentId)) { break; } element_X += element.offsetParent.offsetLeft; element_Y += element.offsetParent.offsetTop; element = element.offsetParent; } //element_X = element_X - document.body.scrollLeft; //element_Y = element_Y - document.body.scrollTop; return { x: element_X, y: element_Y };}
显示 Gitment 评论