При использовании плавной прокрутки якорь смещения не остается на месте - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь, чтобы смещение оставалось на уровне 80 пикселей сверху. прямо сейчас с моим текущим кодом, он плавно прокручивается до правильного смещения, но затем, когда он добирается до того места, где он должен быть, он переходит обратно на верх страницы (скрывая верхнюю часть раздела под меню навигации ).

кто-нибудь знает, как не дать ему прыгнуть обратно наверх страницы?

вот мой текущий код ..

// JavaScript Document


//menu navigation bar
$(document).ready(function(){

// --- Mobile Menu -------------------------
$("#menu-icon, .menunav a").click(function(){
  if(window.matchMedia('(max-width: 768px)').matches) {
    $("#main-navigation").slideToggle("slow");
    $("#menu-icon i").toggleClass("icon-close");
  }
});



// --- Smooth Scroll -----------------------

    $('a[href*="#"]')
  .not('[href="#"]')
  .not('[href="#0"]')
  .click(function(event) {
    var offset = -80; // <-- change the value here
    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) {
        event.preventDefault();
        $('html, body').animate({
          scrollTop: target.offset().top + offset
      }, 1000, function() {
          var $target = $(target);
          $target.focus();
          if ($target.is(":focus")) {
            return false;
          } else {
            $target.attr('tabindex','-1');
            $target.focus();
          };
        });
      }
    }
  });
}); // --- End document ---------------------------------------------------------
...