私は固定位置ヘッダーを持っているため、アンカー リンクをクリックするとコンテンツの一部がヘッダーによって隠されます。そのため、要求されたコンテンツが完全に表示されるように位置を変更したいと考えています。現在、次のjQueryを使用してこれを正常に実行しています:
$(document).ready(function () {
$("a[href^='#']").click(function () {
var id = $(this).attr("href");
var newPosition = $(id).offset();
if (newPosition != undefined) {
window.scrollTo(newPosition.left, newPosition.top - 50);
}
else {
window.scrollTo(0, 0);
}
return false;
});
});
ただし、この方法の問題点は、#anchor 部分を追加するために URL が変更されないため、ユーザーが希望どおりにページをブックマークできないことです。
URLが変更される場所でこれを行う方法はありますか? 幅広いブラウザー互換性が必要なので、URL を変更できないと思います。ウィンドウのスクロール イベントを監視して、URL ハッシュが変更されたかどうかを確認し、変更された場合は 50 ピクセルの調整を行うことができると考えていました。しかし、より良い方法はありますか?