getElementPos(elementId) {
 var ua = navigator.userAgent.toLowerCase();
 
var isOpera = (ua.indexOf('opera'!= -1);
 
var isIE = (ua.indexOf('msie'!= -1 && !isOpera); // not opera spoof
 var el = document.getElementById(elementId);
 
if(el.parentNode === null || el.style.display == 'none') {
  
return false;
 }      
 
var parent = null;
 
var pos = [];     
 
var box;     
 
if(el.getBoundingClientRect)    //IE
 {         
  box 
= el.getBoundingClientRect();
  
var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
  
var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
  
return {x:box.left + scrollLeft, y:box.top + scrollTop};
 }
else if(document.getBoxObjectFor)    // gecko    
 {
  box 
= document.getBoxObjectFor(el); 
  
var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0
  
var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0
  pos 
= [box.x - borderLeft, box.y - borderTop];
 } 
else    // safari & opera    
 {
  pos 
= [el.offsetLeft, el.offsetTop];  
  parent 
= el.offsetParent;     
  
if (parent != el) { 
   
while (parent) {  
    pos[
0+= parent.offsetLeft; 
    pos[
1+= parent.offsetTop; 
    parent 
= parent.offsetParent;
   }  
  }   
  
if (ua.indexOf('opera'!= -1 || ( ua.indexOf('safari'!= -1 && el.style.position == 'absolute' )) { 
   pos[
0-= document.body.offsetLeft;
   pos[
1-= document.body.offsetTop;         
  }    
 }              
 
if (el.parentNode) { 
    parent 
= el.parentNode;
   } 
else {
    parent 
= null;
   }
 
while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors
  pos[0-= parent.scrollLeft;
  pos[
1-= parent.scrollTop;
  
if (parent.parentNode) {
   parent 
= parent.parentNode;
  } 
else {
   parent 
= null;
  }
 }
 
return {x:pos[0], y:pos[1]};
}

//sample
var pos=getElementPos("divId");
alert(
"距左边距离"+ pos.x +",距上边距离"+pos.y);

相关文章:

  • 2021-10-09
  • 2021-09-14
  • 2022-12-23
  • 2021-12-28
  • 2022-12-23
  • 2021-12-31
  • 2022-12-23
  • 2021-07-17
猜你喜欢
  • 2022-12-23
  • 2021-11-04
  • 2022-12-23
  • 2022-12-23
  • 2021-11-07
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案