Как исправить браузерные прыжки при отображении / скрытии навигационного элемента в jquery, переключая его класс - PullRequest
0 голосов
/ 11 февраля 2019

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

Проблема в том, что, если вы находитесь в точном месте, в браузере, из-за отображения нового элемента (display: none; -> display: sticky;) он толкает внизсодержимое веб-сайта для высоты навигации эффективно скрывается и снова отображается и т. д.

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

window.addEventListener('scroll', navDisplay);

function navDisplay() {
  var header = document.querySelector('.fixed');
  var fixHeight = document.querySelector('aside').offsetTop;

  if (window.pageYOffset > fixHeight) {
    $(header).fadeIn("fast", function(){ header.classList.remove("hidden");});
  } else {
    $(header).fadeOut("fast", function(){ header.classList.add("hidden");});
  }
}
...