浏览器距离计算

取得元素左和上的偏移量

function getElementLeft(element){
var acLeft = emement.offsetLeft;
var current = element.offsetParent;
while(current !== null){
acLeft += current.offsetLeft;
current = current.offsetParent;
}
return acLeft;
}
function getElementTop(element){
var acTop = element.offsetTop;
var current = element.offsetParent;
while(current !== null){
acTop += current.offsetTop;
current = current.offsetParent;
}
return acTop;
}

获取当前页面的大小

function getViewClient(){
//检测是否在IE的混杂模式下,如果是就要用document.body
if(document.compatMode === 'BackCompat'){
return {
width: document.body.clientWidth,
height: document.body.clientHeight
}
}else{
return {
width: document.documentElement.clientWidth;
height: document.documentElement.clientHeight
}
}
}

scroll相关

  • scrollHeight : 在没有滚动条的情况下,元素的高度总和
  • scrollWidth: 在没有滚动条的情况下,元素的宽度总和
  • scrollTop: 被隐藏在顶部的元素高度
  • scrollLeft: 被隐藏在左边的元素像素数

获取文档总高度

var el = document.documentElement;
if(document.compatMode === 'BackCompat'){
el = document.body
}
var docHeight = Math.max(el.scrollHeight,el.clientHeight);
var docWidth = Math.max(el.scrollWidth,el.clientWidth);