JS 获取控件的绝对位置

//获取控件左绝对位置

function getAbsoluteLeft(objectId) {
o = document.getElementById(objectId)
oLeft = o.offsetLeft
while(o.offsetParent!=null) {
oParent = o.offsetParent
oLeft += oParent.offsetLeft
o = oParent
}
return oLeft
}
//获取控件上绝对位置
function getAbsoluteTop(objectId) {
o = document.getElementById(objectId);
oTop = o.offsetTop;
while(o.offsetParent!=null)
{
oParent = o.offsetParent
oTop += oParent.offsetTop // Add parent top position
o = oParent
}
return oTop
}

//获取控件宽度

function getElementWidth(objectId) {
x = document.getElementById(objectId);
return x.offsetWidth;
}



范例演示:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<script type="text/javascript">
function showTip(objShowID,objValueID)
{
var objToolTip= document.getElementById('toolTip');
var objToolTipText=document.getElementById(objValueID);
objToolTip.innerText=objToolTipText.innerText;
objToolTip.style.display='block';


objToolTip.style.pixelLeft=getAbsoluteLeft(objShowID);
objToolTip.style.pixelTop=getAbsoluteTop(objShowID)+d.offsetHeight;
}

//获取控件左绝对位置

function getAbsoluteLeft(objectId) {
o = document.getElementById(objectId)
oLeft = o.offsetLeft
while(o.offsetParent!=null) {
oParent = o.offsetParent
oLeft += oParent.offsetLeft
o = oParent
}
return oLeft
}
//获取控件上绝对位置
function getAbsoluteTop(objectId) {
o = document.getElementById(objectId);
oTop = o.offsetTop;
while(o.offsetParent!=null)
{
oParent = o.offsetParent
oTop += oParent.offsetTop // Add parent top position
o = oParent
}
return oTop
}


function Hidden()
{
var objToolTip= document.getElementById("toolTip");
objToolTip.style.display='none';
}


</script>
<style>
.promptDiv
{
border: solid 1px #D1CDC5;
width: 300px;
height: 70px;
position: absolute;
display: none;
background-color: #F6F5F3;
padding: 5px;
overflow-y: auto;
}
</style>
</head>
<body id="bd">
<a οnmοuseοver="javascript:showTip('d','div1')">aaaaaaaaa</a><br />
<a οnmοuseοver="javascript:showTip('d','div2')">ssssssssssssss</a><br />
<a οnmοuseοver="javascript:showTip('d','div3')">dddddddddddd</a>

<div id="div1" style="display:none;">adfasdfasdfasdfasdf</div>
<div id="div1" style="display:none;">adfasdfasdfasdfasdf</div>
<div id="div2" style="display:none;">ddddddddddddddddd</div>
<div id="div3" style="display:none;">adfasdfddddddddddddasdfasdfasdf</div>
<div id="div3" style="display:none;">xcvzxcvzcxvzxcv</div>
<div id="toolTip" class="promptDiv"></div>

<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div id="d">ddddddds</div>
</body>
</html>
转自: http://www.cnblogs.com/huanghai223/archive/2010/12/14/1905884.html
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值