В настоящее время каждый раз при прокрутке переменная prevScrollpos
обновляется. Если вы измените это поведение для обновления только при прокрутке вверх, вы сможете использовать эту переменную для измерения необходимой прокрутки в 200 пикселей.
var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementById("custom-navbar").style.top = "0";
prevScrollpos = currentScrollPos;
} else if (currentScrollPos > prevScrollpos + 200){
document.getElementById("custom-navbar").style.top = "-73px";
prevScrollpos = currentScrollPos;
}
}
Вы действительно хотите очистить этот код. Например, prevScrollpos
имеет нижний регистр p
, в то время как currentScrollPos
имеет верхний регистр P
, что является непоследовательным и приведет к ошибкам при неправильном наборе текста позже. Также, как это структурировано, вы будете постоянно изменять стиль своей панели навигации при прокрутке. Каждый раз, когда вы прокручиваете вверх, вы перезаписываете "0"
с помощью "0"
, и то же самое верно для каждого раза, когда вы прокручиваете 200px вниз.
Лучшим способом структурировать это было бы введение новой логической переменной, которая отслеживает, скрыта ли панель навигации или нет. Таким образом, вы можете быть уверены, что меняете стиль только тогда, когда действительно хотите изменить.