单击其他页面上的锚链接时,topOffset不起作用

时间:2019-05-22 07:35:11

标签: jquery html

我有一个功能,可以通过选择所有包含#的href来平滑滚动页面。单击后,页面向下滚动到链接的部分,减去我标题的高度的上下偏移(因为它的位置为:fixed;)。 现在我的问题是,当我链接到另一页上的某个部分时,此偏移量将被忽略。

我猜问题出在我的click(function()参数上。

$(document).ready(function() {

  $('a[href*="#"]:not([href="#"])').click(function() {

    if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
      var target = $(this.hash);

      target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
      if (target.length) {
        $('html, body').animate({
          scrollTop: target.offset().top - $('#main_menu').height()
        }, 1000);
        return false;
      }
    }
  });
});

如何做到这一点,以使我的标题的topOffset在我单击指向另一个页面上某个部分的链接时不会被忽略(例如,当我进入contact.html并进入到index.html#sectionA)?

0 个答案:

没有答案