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 回答