Как реализовать поведение хедера (меню) как на сайте новой газеты (
https://www.novayagazeta.ru/) при скроллинге.
Я накидал код( я новичек:-)) , но не могу понять как они translate3d(0, 0, 0) изменяют, когда крутишь вверх. Как они относительное значение получили scrollTop() при прокрутке наверх.
var lastYPos = 0;
var navHeight = $('header').outerHeight();
$(window).scroll(function(){
var scrollTop = $(window).scrollTop();
$('header').each(function(){
var yPos = scrollTop;
console.log(yPos);
var yPosDelta = lastYPos - yPos;
if (yPos < navHeight) {
$(this).css({transform: 'translate3d(0,' + -yPos +'px' + ',0)'});
} else {
$(this).css({transform: 'translate3d(0,' + -navHeight +'px' + ',0)'});
}
// Тут условие для похода вверх, можно добавить в css transition
// и будет как в других реализациях, когда плавно выезжает и прячется обратно весь блок.
if (yPosDelta > 0) {
$(this).css({transform: 'translate3d(0,' + 0 +'px' + ',0)'});
}
lastYPos = yPos;
});
});