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