ヘッダーが固定されたページがあり、要素が表示されるようhttp://example.com#foo
に要素までスクロールしてid=foo
ヘッダーの高さを差し引くようなURLが必要です。
私は次のことを試しましたが、少なくともChromeでは、デフォルトのドキュメントフラグメントのスクロールが発生する前にこのコードが実行されるため、スクロール位置が上書きされます:
$(function() {
var offset;
if (window.location.hash !== "") {
offset = $(window.location.hash).offset().top;
return $("body").scrollTop(offset - headerHeight);
}
});
ここに問題のjsfiddleがありますhttp://jsfiddle.net/rk8y7/1/