FIDDLE IS HERE (コンソールへのログ)
状況は、 ページが<H1>で見つかったマージンよりも大きいマージントップを持つ で始まる場合<body>です。
これにより、<body>がページの下に押し込まれますが、の margin-top$('body').offset().topに設定されたままになります。<body>もちろん、これにより、本体のダミー要素が間違った位置にあるため、デバッグ要素 (要素の位置を強調表示する) が正しくなくなります。
興味深いことに、残りの$(elem).offset()値は の子孫に対して正しいです<body>。
while ループを使用して body の再帰的に最初の子のマージントップを手動でチェックするという短い修正はありますか?
Safari 6 の問題に気付きましたが、Chrome でも同様に見つかると思います。
