JavaScript获取页面控件的绝对位置

<script type="text/javascript">
function getAbsoluteLocation(element) {
    if (!element) {
        return null;
    }
    var offsetTop = element.offsetTop;

    var offsetLeft = element.offsetLeft;
    var offsetWidth = element.offsetWidth;
    var offsetHeight = element.offsetHeight;
    while (element = element.offsetParent) {
        if (element.style.position == 'absolute' || element.style.position == 'relative' || (element.style.overflow != 'visible' && element.style.overflow != '')) {
            break;
        }
        offsetTop += element.offsetTop;
        offsetLeft += element.offsetLeft;
    }
    return {
        top: offsetTop,
        left: offsetLeft,
        width: offsetWidth,
        height: offsetHeight
    };
}

 

function test(){

     var _sapn = document.getElementById("yj_span");
     var pos = getAbsoluteLocation(_sapn);

 

     var _div = document.createElement('div');
     body.appendChild(_div);

    _div.style.background = '#6600FF';
     _div.style.position = 'absolute';
     _div.style.width = pos.width;
    _div.style.top = pos.top + pos.height;
    _div.style.left = pos.left;
    _div.innerHTML="YongJie";

}

</script>

 

 <body id="body" οnlοad="test();">

       <div style=" width:50%; text-align:center; background-color:#CCCCCC">
              <div style=" width:50%; background-color:#33FFFF">
                     <span id="yj_span" style=" width:50%; background-color:#6633FF; margin:20 0 50 30px; padding:20px; border:10px inset #FF0000;">hyj</span>
              </div>
        </div>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值