//得到某个对象的绝对top
function getAbsoluteTop(ob){ if(!ob){return null;} var mendingOb = ob; var mendingTop = mendingOb .offsetTop; while( mendingOb != null && mendingOb .offsetParent != null && mendingOb .offsetParent.tagName != "BODY" ){ mendingTop += mendingOb .offsetParent.offsetTop; mendingOb = mendingOb .offsetParent; } return mendingTop ; }
//得到某个对象的绝对left
function getAbsoluteLeft(ob){ if(!ob){return null;} var mendingOb = ob; var mendingLeft = mendingOb .offsetLeft; while( mendingOb != null && mendingOb .offsetParent != null && mendingOb .offsetParent.tagName != "BODY" ){ mendingLeft += mendingOb .offsetParent.offsetLeft; mendingOb = mendingOb .offsetParent; } return mendingLeft ; }
//得到对象的宽高 ,以及位置
function getPosition( domEle ){ var position={}; position.x = parseFloat(domEle.offsetLeft); position.y = parseFloat(domEle.offsetTop); position.width = domEle.clientWidth; position.height = domEle.clientHeight; position.absoluteLeft = getAbsoluteLeft(domEle); position.absoluteTop = getAbsoluteTop(domEle); return position; }
得到页面的一些数字信息
//得到屏幕的宽高 ,以及位置 basic.getViewData = function (){ var position = {}; //滚动条的顶部 position.scrollTop = window.pageYOffset //用于FF || document.documentElement.scrollTop // 有w3c说明的 || document.body.scrollTop //w3c 为0 || 0; var scrollHeight1 = document.documentElement.scrollHeight // 有w3c说明的 || document.body.scrollHeight //w3c 为0 || 0; //整个页面的高度 position.scrollHeight = Math.max(scrollHeight1,position.scrollTop ); //滚动条左边位置 position.scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; //页面宽度 position.width = document.documentElement.clientWidth || document.body.clientWidth || window.innerWidth || 0; //页面高度 position.height = document.documentElement.clientHeight || document.body.clientHeight || window.innerHeight ; // 兼容 opera return position; }