首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浮点型和偏移型Javascript值

问浮点型和偏移型Javascript值
EN

Stack Overflow用户
提问于 2010-06-10 07:04:39
回答 3查看 4K关注 0票数 2

我在我的XHTML页面中有两个浮动项。不幸的是,当我试图获得最右边项目的偏移量时...如果元素不是浮动的,它返回的位置是元素的位置。

代码语言:javascript
复制
    <div id="Left style="float:right"></div>
    <div id="right" style="float:right"></div> 

    Using Jquery 
    <script type="text/javascript"> 
       var right = $("#right"); 
       alert(right[0].offsetLeft); 
    </script>

我一定要做这样的事情吗?

代码语言:javascript
复制
function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) 
    {
        do 
        {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;

        } while (obj = obj.offsetParent);
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-10 07:38:09

看起来您正在尝试查找页面位置。

所以,是的,您将使用如下函数:

代码语言:javascript
复制
function aGetElementsPagePosition (zElement)
{
    var iLeftOffset = zElement.offsetLeft; 
    var iTopOffset  = zElement.offsetTop;

    while (zElement = zElement.offsetParent)
    {
        iLeftOffset += zElement.offsetLeft;
        iTopOffset  += zElement.offsetTop;
    }

    return [iLeftOffset, iTopOffset];
}
票数 0
EN

Stack Overflow用户

发布于 2010-06-10 07:47:06

最终做了这样的事情:

代码语言:javascript
复制
    function findPos(obj) { 
      var pos = new Object();
      pos.x = pos.y = 0;        
      if (obj.offsetParent)  
      { 
        do  
        { 
          pos.x += obj.offsetLeft; 
          pos.y += obj.offsetTop; 
        } while (obj = obj.offsetParent); 
      } 
      return pos;
    } 
票数 0
EN

Stack Overflow用户

发布于 2013-10-03 03:14:12

以跨浏览器的方式获取元素在页面中的位置的方法如下:

代码语言:javascript
复制
var tempEl;
var myElement = document.getElementById('#someId');

//cool guys
x = myElement.offsetLeft;
y = myElement.offsetTop;

//IE 7-
if (myElement.hasLayout
    && myElement.offsetParent
    && myElement.offsetParent != document.body
    ) {

    x = 0;
    y = 0;
    tempEl = myElement;

    while (tempEl.parentNode) {

        if (tempEl.currentStyle.hasLayout) {//very important for floated elements
            x += (tempEl.offsetLeft) ? tempEl.offsetLeft : 0;
            y += (tempEl.offsetTop) ? tempEl.offsetTop : 0;
        }

        if (tempEl == document.body) {
            break;
        }

        tempEl = tempEl.parentNode;

    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3010619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档