使用
getBoundingClientRectif
$el是实际的DOM对象:
var top = $el.getBoundingClientRect().top;
JSFiddle
小提琴将显示这将获得与jquery的offset top相同的值
编辑 :如注释中所述,这不考虑滚动内容,以下是jQuery使用的代码
https://github.com/jquery/jquery/blob/master/src/offset.js(5/13/2015)
offset: function( options ) { //... var docElem, win, rect, doc, elem = this[ 0 ]; if ( !elem ) { return; } rect = elem.getBoundingClientRect(); // Make sure element is not hidden (display: none) or disconnected if ( rect.width || rect.height || elem.getClientRects().length ) { doc = elem.ownerdocument; win = getWindow( doc ); docElem = doc.documentElement; return { top: rect.top + win.pageYOffset - docElem.clientTop, left: rect.left + win.pageXOffset - docElem.clientLeft }; }}


