我使用top:-26px;
在css中设置高度。我有其他地方其他地方,我想与该div对齐。我注意到jquery写.css('top')
让我得到了我的css而不是div的y coord。如何使用javascript获得绝对x,y位置?
答案 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
};
}
它将返回包含left
和top
变量的对象。
如果您使用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;