JavaScript获取网页元素的绝对坐标

<html>

<script language="javascript">
function findPosX(obj) {
var curleft = 0;

if (obj.offsetParent) { //返回父类元素,大多说offsetParent返回body
   while (obj.offsetParent) {//遍历所有父类元素
    curleft += obj.offsetLeft;//当前元素的左边距
    obj = obj.offsetParent;       
   }
} else if (obj.x) curleft += obj.x;
return curleft;
}

function findPosY(obj) {
var curtop = 0;

if (obj.offsetParent) {
   while (obj.offsetParent) {

    curtop += obj.offsetTop;
    obj = obj.offsetParent;
   }
} else if (obj.y) curtop += obj.y;
return curtop;
}
function getPos(){
return {x:findPosX(document.getElementById("p36table")),y:findPosY(document.getElementById("p36table"))};
}

function showPos(){
var pos = getPos();
alert("x=="+pos.x+"y=="+pos.y);

}
</script>

<div id="parentdiv" style="position:relative; border:5px solid;" >
         <table id="p36table" style="position: relative; " width="185" border="1" align="center" cellpadding="0" cellspacing="0">
   <tr>
   <td>
          <iframe frameborder=0 scrolling=no width="185" height="170" marginHeight=0 marginWidth=0 align="left"
      src='#'></iframe>
   </td>
   <td onClick="javascript:showPos();">测试获得坐标</td>
   </tr>
      </table>
  
   </div>  
</html>

 

 

 

 

附注:

方法1:

function   getAbsPoint(e)  
{  
    var   x   =   e.offsetLeft,   y   =   e.offsetTop;  
    while(e=e.offsetParent)
    {
       x   +=   e.offsetLeft;  
       y   +=   e.offsetTop;
    }
    alert("x:"+x+","+"y:"+y);  
}

方法2:

function   getAbsPoint(obj)  
{  
   var   x,y;  
   orect   =   obj.getBoundingClientRect();  
x=oRect.left  
y=oRect.top  
alert("("+x+","+y+")")  
}

JS中获得窗口属性的方法

1。获得屏幕的分辨率:
screen.width
screen.height

2。获得窗口大小:
document.body.clientWidth
document.body.clientHeight

3。获得窗口大小(包含Border、Scroll等元素)
document.body.offsetWidth
document.body.offsetHeight  

 



评论: 0 | 引用: 0 | 查看次数: 4614
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑