在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 }; }
它将返回带有left
和top
变量的对象。
如果你使用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;