jQuery плавная прокрутка с окном. расположение и отрицательное поле - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь создать плавную прокрутку для фиксированной навигации, которая сохраняет новый хэш в URL и учитывает высоту навигации. Проблема в том, что произошел небольшой скачок, и он прокручивается к месту из-за конфликта window.location.hash = hash с scrollTop: $(hash).offset().top - $('.menucontent').height(). Кто-нибудь знает обходной путь для этого?

$('a').on( 'click', function(e)  {
    if ( this.hash !== '' ) {
        e.preventDefault();

        var hash = this.hash;

        $('html, body').animate({
            scrollTop: $(hash).offset().top - $('.menucontent').height()
        }, 800, function() {
            window.location.hash = hash;
        });
    }
});
...