ユーザーがリンクをクリックすると、ページがターゲットから 20px を引いた位置までスクロールするスクリプトを作成しようとしています (つまり、ターゲットが [0,100] にある場合、ページは [0,80] にスクロールします。その理由は、この 20 ピクセルの違いは、サイトの高さ 20 ピクセルの上のレイヤーにバナーを配置しているためです。
現在、私のアプローチは、ターゲットに直接スクロールしてから、現在の場所から 20px を差し引くことです。ただし、現在のy位置がどこにあるかを判断するのに問題があります。
HTML:
<nav>
<a href="#chapterA" class="link">ChapterA</a>
<a href="#chapterB" class="link">ChapterB</a>
</nav>
...
<a name="chapterA">ChapterA</a>
<a name="chapterB">ChapterB</a>
jQuery:
$('.link').click(function() {
var currentY = 0; //how to get current y position?
window.scrollTo(0, currentY - 20);
});