1

ユーザーがリンクをクリックすると、ページがターゲットから 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);
});
4

1 に答える 1

1

これを試して:

$('.link').click(function(e) {
  e.preventDefault()
  $(window).scrollTop($(window).scrollTop() - 20);
});

href属性のないアンカー リンクは無効であることに注意してください。

于 2012-06-19T20:57:59.153 に答える