在javascript中获得div位置(顶部)?

时间:2012-05-12 14:40:53

标签: javascript jquery html

我使用top:-26px;在css中设置高度。我有其他地方其他地方,我想与该div对齐。我注意到jquery写.css('top')让我得到了我的css而不是div的y coord。如何使用javascript获得绝对x,y位置?

6 个答案:

答案 0 :(得分:17)

我会给你香草解决方案..不要抱怨..给你的元素添加一个[0]并且它已经修复了! :P希望这会有所帮助。

function getOffset( el ) {
    var _x = 0;
    var _y = 0;
    while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
        _x += el.offsetLeft - el.scrollLeft;
        _y += el.offsetTop - el.scrollTop;
        el = el.offsetParent;
    }
    return { top: _y, left: _x };
}
var x = getOffset( document.getElementById('yourElId') ).left; 

答案 1 :(得分:11)

您可以使用jQuery(element).offset().top

希望它有所帮助。

答案 2 :(得分:3)

试试这段代码:

function getElementPosition(id) {
    var offsetTrail = document.getElementById(id);
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }

    return {
        left: offsetLeft,
        top: offsetTop
    };
}​

它将返回包含lefttop变量的对象。

如果您使用JQuery,请尝试offset()方法:

var pos = $("#element").offset();
console.log(pos.left)
console.log(pos.top)

答案 3 :(得分:0)

使用标准JavaScript:

var elem=document.getElementById("elemID");
var top=elem.offsetTop;
var left=elem.offsetLeft;

使用jQuery:

var top=$("#elemID").offset().top;
var left=$("#elemID").offset().left;

答案 4 :(得分:0)

使用jQuery(element).offset()

希望它有所帮助。

例如

var elementPosition = jQuery(element).offset();
var elementTopPositon = elementPosition.top;

答案 5 :(得分:0)

var MyElement = document.getElementById("...Your_DIV_Control...");

var top = MyElement.getBoundingClientRect().top;