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

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

我会给你香草解决方案..不要抱怨..给你的元素添加[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; 

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

希望能帮助到你。

试试这段代码:

 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) 

跨浏览器安全到IE 8,甚至可能是7或6:

 function offset(el) { var rect = el.getBoundingClientRect(), scrollLeft = window.pageXOffset || document.documentElement.scrollLeft, scrollTop = window.pageYOffset || document.documentElement.scrollTop; return { top: rect.top + scrollTop, left: rect.left + scrollLeft } } var offsetEl = offset(document.getElementById('some_id')); console.log(offsetEl.left, offsetEl.top); 

简短快速,无需jQuery。

使用标准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; 

使用jQuery(element).offset()

希望能帮助到你。

例如

 var elementPosition = jQuery(element).offset(); var elementTopPositon = elementPosition.top; 
 var MyElement = document.getElementById("...Your_DIV_Control..."); var top = MyElement.getBoundingClientRect().top;