@Ale9292

Как сделать плавный скролл к id во время перехода по страницам?

Необходимо, чтобы при клике на пункт меню, происходил плавный скролл к нужному мне объекту.
Это я реализовал с помощью скрипта:
let navLinkService = document.querySelectorAll( '.nav__link-service' ),
            body = document.querySelector( 'body' );

        if ( body.classList.contains( 'home' ) ) {
            for ( let i = 0; i < navLinkService.length; i++ ) {
                navLinkService[i].addEventListener( 'click', ( event ) => {
                    event.preventDefault();
                    
                    const navId = event.currentTarget.getAttribute( 'href' ).substr( 28 );
                    document.getElementById( navId ).scrollIntoView( {
                        behavior: 'smooth',
                        block: 'start',
                    } );
                    
                } );
            }
        } else {
            // 
        }


НО, если я нахожусь на другой странице(например, стр. Контакты) и хочу попасть на Главную(так как только на ней работает функция), происходит переход и спуск к нужному мне ID, но только со скачком. Как можно это сделать так, чтобы этот переход был плавным?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
sharp97
@sharp97
не фонтан но брызги есть
Попробуй подождать пока Dom будет построен, потом выполни с setTimeOut допустим в секунду клик по нужному пункту меню
window.scrollBy({
top:goToBlockValue,
behavior: "smooth"
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы