Плавная прокрутка не соответствует только на втором клике - PullRequest
0 голосов
/ 15 мая 2019

Очень странный шаблон, который я нашел с этим кодом, я купил этот шаблон, чтобы быстро запустить и запустить веб-сайт, и теперь у меня были проблемы с отладкой тиков. Так что это эффект плавной прокрутки для перехода к каждому разделу страницы, и он не хочет идти туда, где он должен быть, пока я не нажму на него снова, и он не встанет на свое место.

/*Smooth Scroll*/
$(document).ready(function(){
  // Add smooth scrolling to all links
    var nav = document.getElementById("navver");
    var navHeight = nav.clientHeight;
  $("a.nav").on('click', function(event) {
    // Make sure this.hash has a value before overriding default behavior
        if (this.hash !== "") {
          // Prevent default anchor click behavior
          event.preventDefault();
          // Store hash
          var hash = this.hash;
          // Using jQuery's animate() method to add smooth page scroll
          // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified are
          $('html, body').animate({
            scrollTop: $(hash).offset().top - navHeight
          }, 1200, "swing", function(){
                // Add hash (#) to URL when done scrolling (default click behavior)
                window.location.hash = hash;
          });
    } // End if
  });
});

Как вы можете видеть, я изменил продолжительность анимации просто для проверки, поскольку это очень странно для меня, я также добавил смягчение swing только для себя. Но, как я уже сказал, эффект пройдет мимо целого числа scrollTop, а затем по второму щелчку перейдет туда, где это нужно моей математике. Я console.log 'все отредактировал, и цифры отображаются одинаково, несмотря ни на что, поэтому я не вижу, чтобы что-то не обрабатывалось до или после запуска функций.

У каких-нибудь свежих глаз есть идеи?

...