Проблема прокрутки страницы jQuery с исправленным заголовком

#jquery #jquery-animate #scrolltop

#jquery #jquery-анимировать #scrolltop

Вопрос:

Я использую строку jQuery, чтобы направлять своих пользователей в правую часть моей страницы при нажатии на ссылку, используя приведенный ниже код:

 $('html, body').animate({ scrollTop: $("#cell_"   scrollTo).offset().top }, 1500);
  

Он работает нормально и прокручивается до правильной точки на странице. Однако у меня есть фиксированная панель навигации (высота: 49 пикселей; положение: исправлено;) на сайте, которая отображается в верхней части страницы при прокрутке. Проблема возникает, когда страница прокручивается вниз до нужного содержимого, но затем продолжает прокручиваться под панелью навигации, скрывая ее из поля зрения.

Мой вопрос в том, как я могу изменить приведенный выше код, чтобы компенсировать панель навигации?

Любая помощь с благодарностью,

Линдон

Ответ №1:

Вам нужно будет получить внешнюю высоту заголовка и вычесть ее из величины, до которой вы прокручиваете.

 var scrollToPosition = parseInt($("#cell_"   scrollTo).offset().top) - parseInt($('#header').outerHeight());

if (scrollToPosition < 0) { scrollToPosition = 0 } // make sure it is not negative

$('html, body').animate({ scrollTop: scrollToPosition }, 1500);