平滑滚动以从另一个HTML页面锚定主页上的链接的问题

时间:2019-03-28 15:26:54

标签: jquery html css smooth-scrolling

我已经在网站上成功实现了平滑滚动。我的主页包含4个锚定链接(每个链接都有一个“平滑”类-此类的CSS样式为零)。但是,我的隐私/ Cookie政策页面位于单独的html页面上。不幸的是,当我进入隐私页面时,无法返回首页。我收到cannot read property of 'top' of undefined错误。

因此,我很想知道如何在页面之间进行切换时成功地保持平滑滚动(锚链接仅出现在主页上)。我正在使用jQuery。非常感谢您的帮助。

// Smooth scrolling
   $('.smooth').click(function(e) {
      e.preventDefault();
      $('html, body').animate({
         scrollTop: $(this.hash).offset().top
      }, 500);
   });

   // Active link switching
   $(window).scroll(function() {
      var scrollbarLocation = $(this).scrollTop();
      $('.nav__link').each(function() {
         var sectionOffset = $(this.hash).offset().top - 80;
         if (sectionOffset <= scrollbarLocation) {
            $(".nav__link").removeClass('active');
            $(this).addClass('active');
         }
      });
   });

   // Maintaining urls
   function markLinkActive(event) {
      event.preventDefault();
      $("nav .active").removeClass("active");
      this.classList.add("active");
      window.location.href = this.getAttribute("href");
   }

0 个答案:

没有答案